; ModuleID = 'dijkstra-example.cpp'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
target triple = "i386-pc-linux-gnu"

%"class.std::ios_base::Init" = type { i8 }
%"class.boost::detail::make_property_map_from_arg_pack_gen" = type { i32 }
%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", %"class.std::basic_ostream"*, i8, i8, %"class.std::basic_streambuf"*, %"class.std::ctype"*, %"class.std::num_put"*, %"class.std::num_get"* }
%"class.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"class.std::locale" }
%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"class.std::ios_base"*, i32)*, i32, i32 }
%"struct.std::ios_base::_Words" = type { i8*, i32 }
%"class.std::locale" = type { %"class.std::locale::_Impl"* }
%"class.std::locale::_Impl" = type { i32, %"class.std::locale::facet"**, i32, %"class.std::locale::facet"**, i8** }
%"class.std::locale::facet" = type { i32 (...)**, i32 }
%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" }
%"class.std::ctype" = type { %"class.std::locale::facet", %struct.__locale_struct*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 }
%struct.__locale_struct = type { [13 x %struct.__locale_data*], i16*, i32*, i32*, [13 x i8*] }
%struct.__locale_data = type opaque
%"class.std::num_put" = type { %"class.std::locale::facet" }
%"class.std::num_get" = type { %"class.std::locale::facet" }
%"struct.std::pair" = type { i32, i32 }
%"class.boost::adjacency_list" = type { %"class.boost::vec_adj_list_impl", %"class.boost::scoped_ptr" }
%"class.boost::vec_adj_list_impl" = type { %"class.std::list", %"class.std::vector" }
%"class.std::list" = type { %"class.std::_List_base" }
%"class.std::_List_base" = type { %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl" }
%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl" = type { %"struct.std::__detail::_List_node_base" }
%"struct.std::__detail::_List_node_base" = type { %"struct.std::__detail::_List_node_base"*, %"struct.std::__detail::_List_node_base"* }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl" }
%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl" = type { %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* }
%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex" = type { %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex" }
%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex" = type { %"class.std::list.21", %"struct.boost::no_property" }
%"class.std::list.21" = type { %"class.std::_List_base.22" }
%"class.std::_List_base.22" = type { %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl" }
%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl" = type { %"struct.std::__detail::_List_node_base" }
%"struct.boost::no_property" = type { i8 }
%"class.boost::scoped_ptr" = type { %"struct.boost::no_property"* }
%"struct.boost::adj_list_edge_property_map" = type { i32 }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl" = type { i32*, i32*, i32* }
%"class.std::allocator.5" = type { i8 }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl" = type { i32*, i32*, i32* }
%"class.std::allocator.10" = type { i8 }
%"struct.boost::bgl_named_params" = type { i32*, %"struct.boost::bgl_named_params.13" }
%"struct.boost::bgl_named_params.13" = type { i32*, %"struct.boost::no_property" }
%"class.boost::range_detail::integer_iterator" = type { i32 }
%"class.boost::tuples::tuple" = type { %"struct.boost::tuples::cons" }
%"struct.boost::tuples::cons" = type { %"class.boost::range_detail::integer_iterator"*, %"struct.boost::tuples::cons.14" }
%"struct.boost::tuples::cons.14" = type { %"class.boost::range_detail::integer_iterator"* }
%"struct.std::pair.15" = type { %"class.boost::range_detail::integer_iterator", %"class.boost::range_detail::integer_iterator" }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { i32 (...)** }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, i8*, i32, i8, i8, i8, i8, i8*, i8*, i8, %"class.std::codecvt"*, i8*, i32, i8*, i8* }
%union.pthread_mutex_t = type { %"struct.<anonymous union>::__pthread_mutex_s" }
%"struct.<anonymous union>::__pthread_mutex_s" = type { i32, i32, i32, i32, i32, %union.anon }
%union.anon = type { i32 }
%"class.std::__basic_file" = type { %struct._IO_FILE*, i8 }
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
%struct.__mbstate_t = type { i32, %union.anon.16 }
%union.anon.16 = type { i32 }
%"class.std::codecvt" = type { %"class.std::__codecvt_abstract_base", %struct.__locale_struct* }
%"class.std::__codecvt_abstract_base" = type { %"class.std::locale::facet" }
%"class.boost::detail::adj_list_edge_iterator" = type { %"class.boost::range_detail::integer_iterator", %"class.boost::range_detail::integer_iterator", %"class.boost::range_detail::integer_iterator", %"class.boost::optional", %"class.boost::adjacency_list"* }
%"class.boost::optional" = type { %"class.boost::optional_detail::optional_base" }
%"class.boost::optional_detail::optional_base" = type { i8, [3 x i8], %"class.boost::optional_detail::aligned_storage" }
%"class.boost::optional_detail::aligned_storage" = type { %"union.boost::optional_detail::aligned_storage<std::pair<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >::dummy_u" }
%"union.boost::optional_detail::aligned_storage<std::pair<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >::dummy_u" = type { [16 x i8] }
%"class.boost::tuples::tuple.17" = type { %"struct.boost::tuples::cons.18" }
%"struct.boost::tuples::cons.18" = type { %"class.boost::detail::adj_list_edge_iterator"*, %"struct.boost::tuples::cons.19" }
%"struct.boost::tuples::cons.19" = type { %"class.boost::detail::adj_list_edge_iterator"* }
%"struct.std::pair.20" = type { %"class.boost::detail::adj_list_edge_iterator", %"class.boost::detail::adj_list_edge_iterator" }
%"class.boost::detail::edge_desc_impl" = type { %"struct.boost::detail::edge_base", i8* }
%"struct.boost::detail::edge_base" = type { i32, i32 }
%"struct.boost::adj_list_helper" = type { i8 }
%"class.boost::iterator_facade" = type { i8 }
%"struct.boost::directed_edges_helper" = type { i8 }
%"struct.boost::put_get_helper" = type { i8 }
%"struct.boost::edge_property_tag" = type { i8 }
%"class.boost::integer_range" = type { %"class.boost::iterator_range" }
%"class.boost::iterator_range" = type { %"class.boost::range_detail::integer_iterator", %"class.boost::range_detail::integer_iterator" }
%"struct.boost::adj_list_edge_property_map.33" = type { i32 }
%"struct.boost::vec_adj_list_vertex_id_map" = type { i8 }
%"struct.boost::param_not_found" = type { i8 }
%"struct.mpl_::bool_.30" = type { i8 }
%"struct.boost::is_convertible.32" = type { i8 }
%"struct.std::pair.26" = type { %"struct.boost::detail::out_edge_iter", %"struct.boost::detail::out_edge_iter" }
%"struct.boost::detail::out_edge_iter" = type { %"class.boost::iterator_adaptor", i32 }
%"class.boost::iterator_adaptor" = type { %"struct.std::_List_iterator" }
%"struct.std::_List_iterator" = type { %"struct.std::__detail::_List_node_base"* }
%"class.boost::iterator_facade.27" = type { i8 }
%"struct.boost::property" = type { i32, %"struct.boost::no_property" }
%"class.boost::detail::stored_edge_property" = type { %"class.boost::detail::stored_edge", %"class.std::auto_ptr" }
%"class.boost::detail::stored_edge" = type { i32 }
%"class.std::auto_ptr" = type { %"struct.boost::property"* }
%"struct.std::_List_node" = type { %"struct.std::__detail::_List_node_base", %"class.boost::detail::stored_edge_property" }
%"struct.mpl_::bool_" = type { i8 }
%"struct.boost::integral_constant" = type { i8 }
%union.anon.28 = type { i8* }
%"struct.boost::is_convertible" = type { i8 }
%union.anon.29 = type { i8* }
%"struct.std::_List_const_iterator" = type { %"struct.std::__detail::_List_node_base"* }
%"struct.std::input_iterator_tag" = type { i8 }
%"struct.std::bidirectional_iterator_tag" = type { i8 }
%"struct.boost::optional_detail::optional_tag" = type { i8 }
%"struct.boost::tuples::null_type" = type { i8 }
%"class.boost::iterator_property_map" = type { %"class.__gnu_cxx::__normal_iterator", %"struct.boost::vec_adj_list_vertex_id_map" }
%"class.__gnu_cxx::__normal_iterator" = type { i32* }
%"struct.boost::vertex_property_tag" = type { i8 }
%"struct.boost::put_get_helper.35" = type { i8 }
%"struct.boost::put_get_helper.34" = type { i8 }
%"class.boost::dummy_property_map" = type { i32 }
%"struct.boost::distance_inf_t" = type { i8 }
%"struct.std::less" = type { i8 }
%"struct.boost::distance_compare_t" = type { i8 }
%"struct.boost::closed_plus" = type { i32 }
%"struct.boost::distance_combine_t" = type { i8 }
%"struct.boost::distance_zero_t" = type { i8 }
%"class.boost::dijkstra_visitor" = type { %"class.boost::bfs_visitor" }
%"class.boost::bfs_visitor" = type { %"struct.boost::null_visitor" }
%"struct.boost::null_visitor" = type { i8 }
%"struct.boost::graph::detail::no_parameter" = type { i8 }
%"struct.boost::RandomAccessIteratorConcept" = type { %"struct.boost::RandomAccessIterator" }
%"struct.boost::RandomAccessIterator" = type { %"struct.boost::BidirectionalIterator", %"struct.boost::Comparable", %"class.__gnu_cxx::__normal_iterator", %"class.__gnu_cxx::__normal_iterator", %"class.__gnu_cxx::__normal_iterator", %"class.__gnu_cxx::__normal_iterator", i32 }
%"struct.boost::BidirectionalIterator" = type { %"struct.boost::ForwardIterator", %"class.__gnu_cxx::__normal_iterator" }
%"struct.boost::ForwardIterator" = type { %"struct.boost::InputIterator", %"class.__gnu_cxx::__normal_iterator" }
%"struct.boost::InputIterator" = type { %"struct.boost::Assignable", %"struct.boost::EqualityComparable", %"class.__gnu_cxx::__normal_iterator" }
%"struct.boost::Assignable" = type { %"class.__gnu_cxx::__normal_iterator", %"class.__gnu_cxx::__normal_iterator" }
%"struct.boost::EqualityComparable" = type { %"class.__gnu_cxx::__normal_iterator", %"class.__gnu_cxx::__normal_iterator" }
%"struct.boost::Comparable" = type { %"class.__gnu_cxx::__normal_iterator", %"class.__gnu_cxx::__normal_iterator" }
%"struct.boost::put_get_helper.36" = type { i8 }
%"struct.boost::two_bit_color_map" = type { i32, %"struct.boost::vec_adj_list_vertex_id_map", %"class.boost::shared_array" }
%"class.boost::shared_array" = type { i8*, %"class.boost::detail::shared_count" }
%"class.boost::detail::shared_count" = type { %"class.boost::detail::sp_counted_base"* }
%"class.boost::detail::sp_counted_base" = type { i32 (...)**, i32, i32 }
%"struct.boost::graph::bfs_visitor_event_not_overridden" = type { i8 }
%"struct.boost::on_initialize_vertex" = type { i8 }
%"class.boost::indirect_cmp" = type { i32*, %"struct.std::less" }
%"class.boost::scoped_array" = type { i32* }
%"class.boost::iterator_property_map.38" = type { i32*, %"struct.boost::vec_adj_list_vertex_id_map" }
%"class.boost::d_ary_heap_indirect" = type { %"struct.std::less", %"class.std::vector.3", i32*, %"class.boost::iterator_property_map.38" }
%"struct.boost::detail::dijkstra_bfs_visitor" = type { %"class.boost::dijkstra_visitor", %"class.boost::d_ary_heap_indirect"*, %"struct.boost::adj_list_edge_property_map.33", i32*, i32*, %"struct.boost::closed_plus", %"struct.std::less", i32 }
%"class.boost::tuples::tuple.40" = type { %"struct.boost::tuples::cons.41" }
%"struct.boost::tuples::cons.41" = type { %"struct.boost::detail::out_edge_iter"*, %"struct.boost::tuples::cons.42" }
%"struct.boost::tuples::cons.42" = type { %"struct.boost::detail::out_edge_iter"* }
%"struct.boost::put_get_helper.39" = type { i8 }
%"struct.boost::negative_edge" = type { %"struct.boost::bad_graph" }
%"struct.boost::bad_graph" = type { %"class.std::invalid_argument" }
%"class.std::invalid_argument" = type { %"class.std::logic_error" }
%"class.std::logic_error" = type { %"class.std::exception", %"class.std::basic_string" }
%"class.std::exception" = type { i32 (...)** }
%"class.std::basic_string" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" }
%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* }
%"struct.boost::on_finish_vertex" = type { i8 }
%"struct.boost::on_edge_relaxed" = type { i8 }
%"struct.boost::on_edge_not_relaxed" = type { i8 }
%"struct.boost::exception_detail::error_info_injector" = type { %"struct.boost::negative_edge", %"class.boost::exception" }
%"class.boost::exception" = type { i32 (...)**, %"class.boost::exception_detail::refcount_ptr", i8*, i8*, i32 }
%"class.boost::exception_detail::refcount_ptr" = type { %"struct.boost::exception_detail::error_info_container"* }
%"struct.boost::exception_detail::error_info_container" = type { i32 (...)** }
%"class.boost::exception_detail::clone_impl" = type { %"struct.boost::exception_detail::error_info_injector", %"class.boost::exception_detail::clone_base" }
%"class.boost::exception_detail::clone_base" = type { i32 (...)** }
%"struct.boost::on_examine_edge" = type { i8 }
%"class.std::allocator.43" = type { i8 }
%"struct.boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::negative_edge> >::clone_tag" = type { i8 }
%"struct.boost::on_examine_vertex" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.47" = type { i32* }
%"class.__gnu_cxx::new_allocator.6" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.46" = type { i32* }
%"struct.boost::on_discover_vertex" = type { i8 }
%"struct.boost::RandomAccessIteratorConcept.48" = type { %"struct.boost::RandomAccessIterator.49" }
%"struct.boost::RandomAccessIterator.49" = type { %"struct.boost::BidirectionalIterator.50", %"struct.boost::Comparable.55", i32*, i32*, i32*, i32*, i32 }
%"struct.boost::BidirectionalIterator.50" = type { %"struct.boost::ForwardIterator.51", i32* }
%"struct.boost::ForwardIterator.51" = type { %"struct.boost::InputIterator.52", i32* }
%"struct.boost::InputIterator.52" = type { %"struct.boost::Assignable.53", %"struct.boost::EqualityComparable.54", i32* }
%"struct.boost::Assignable.53" = type { i32*, i32* }
%"struct.boost::EqualityComparable.54" = type { i32*, i32* }
%"struct.boost::Comparable.55" = type { i32*, i32* }
%"struct.boost::checked_array_deleter" = type { i8 }
%"class.boost::detail::sp_counted_impl_pd" = type { %"class.boost::detail::sp_counted_base", i8*, %"struct.boost::checked_array_deleter" }
%"class.std::type_info" = type { i32 (...)**, i8* }
%"struct.boost::put_get_helper.37" = type { i8 }
%"class.__gnu_cxx::new_allocator.11" = type { i8 }
%"struct.boost::graph::maybe_named_graph" = type { i8 }
%"class.std::allocator.0" = type { i8 }
%"struct.std::pair.64" = type { %"class.boost::detail::edge_desc_impl", i8 }
%"struct.std::_List_node.56" = type { %"struct.std::__detail::_List_node_base", %"struct.boost::list_edge" }
%"struct.boost::list_edge" = type { %"struct.boost::detail::edge_base.57", %"struct.boost::property" }
%"struct.boost::detail::edge_base.57" = type { i32, i32 }
%"class.std::allocator.58" = type { i8 }
%"class.__gnu_cxx::new_allocator.59" = type { i8 }
%"class.std::allocator" = type { i8 }
%"class.__gnu_cxx::new_allocator" = type { i8 }
%"class.__gnu_cxx::new_allocator.1" = type { i8 }
%"class.std::allocator.61" = type { i8 }
%"class.__gnu_cxx::new_allocator.62" = type { i8 }
%"class.std::allocator.23" = type { i8 }
%"class.__gnu_cxx::new_allocator.24" = type { i8 }
%"struct.boost::directed_graph_helper" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.69" = type { %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* }
%"class.boost::tuples::tuple.65" = type { %"struct.boost::tuples::cons.66" }
%"struct.boost::tuples::cons.66" = type { %"struct.std::_List_iterator"*, %"struct.boost::tuples::cons.67" }
%"struct.boost::tuples::cons.67" = type { i8* }
%"struct.std::pair.68" = type { %"struct.std::_List_iterator", i8 }
%"struct.boost::graph_detail::back_insertion_sequence_tag" = type { %"struct.boost::graph_detail::sequence_tag" }
%"struct.boost::graph_detail::sequence_tag" = type { %"struct.boost::graph_detail::forward_container_tag" }
%"struct.boost::graph_detail::forward_container_tag" = type { i32 (...)** }
%"struct.boost::graph_detail::list_tag" = type { %"struct.boost::graph_detail::reversible_container_tag", %"struct.boost::graph_detail::back_insertion_sequence_tag" }
%"struct.boost::graph_detail::reversible_container_tag" = type { %"struct.boost::graph_detail::forward_container_tag" }
%"struct.boost::equality_comparable1" = type { i8 }
%"struct.boost::graph_detail::container_tag" = type { i8 }
%"struct.std::__false_type" = type { i8 }

@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1
@__dso_handle = external global i8
@_ZN5boost6detailL28make_color_map_from_arg_packE = internal global %"class.boost::detail::make_property_map_from_arg_pack_gen" zeroinitializer, align 4
@_ZZ4mainE4name = private unnamed_addr constant [6 x i8] c"ABCDE\00", align 1
@_ZZ4mainE7weights = private unnamed_addr constant [9 x i32] [i32 1, i32 2, i32 1, i32 2, i32 7, i32 3, i32 1, i32 1, i32 1], align 4
@_ZSt4cout = external global %"class.std::basic_ostream"
@.str = private unnamed_addr constant [23 x i8] c"distances and parents:\00", align 1
@.str2 = private unnamed_addr constant [10 x i8] c"distance(\00", align 1
@.str3 = private unnamed_addr constant [5 x i8] c") = \00", align 1
@.str4 = private unnamed_addr constant [3 x i8] c", \00", align 1
@.str5 = private unnamed_addr constant [8 x i8] c"parent(\00", align 1
@.str6 = private unnamed_addr constant [21 x i8] c"figs/dijkstra-eg.dot\00", align 1
@.str7 = private unnamed_addr constant [13 x i8] c"digraph D {\0A\00", align 1
@.str8 = private unnamed_addr constant [14 x i8] c"  rankdir=LR\0A\00", align 1
@.str9 = private unnamed_addr constant [14 x i8] c"  size=\224,3\22\0A\00", align 1
@.str10 = private unnamed_addr constant [16 x i8] c"  ratio=\22fill\22\0A\00", align 1
@.str11 = private unnamed_addr constant [22 x i8] c"  edge[style=\22bold\22]\0A\00", align 1
@.str12 = private unnamed_addr constant [24 x i8] c"  node[shape=\22circle\22]\0A\00", align 1
@.str13 = private unnamed_addr constant [5 x i8] c" -> \00", align 1
@.str14 = private unnamed_addr constant [9 x i8] c"[label=\22\00", align 1
@.str15 = private unnamed_addr constant [2 x i8] c"\22\00", align 1
@.str16 = private unnamed_addr constant [16 x i8] c", color=\22black\22\00", align 1
@.str17 = private unnamed_addr constant [15 x i8] c", color=\22grey\22\00", align 1
@.str18 = private unnamed_addr constant [2 x i8] c"]\00", align 1
@.str19 = private unnamed_addr constant [2 x i8] c"}\00", align 1
@.str20 = private unnamed_addr constant [23 x i8] c"this->is_initialized()\00", align 1
@.str21 = private unnamed_addr constant [54 x i8] c"/home/thomas/boost_1_52_0/boost/optional/optional.hpp\00", align 1
@__PRETTY_FUNCTION__._ZNK5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv = private unnamed_addr constant [1097 x i8] c"pointer_const_type boost::optional<std::pair<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >::operator->() const [T = std::pair<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> >]\00", align 1
@__PRETTY_FUNCTION__._ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv = private unnamed_addr constant [1085 x i8] c"pointer_type boost::optional<std::pair<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >::operator->() [T = std::pair<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> >]\00", align 1
@_ZZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeEE17elements_per_char = linkonce_odr constant i32 4, align 4
@.str22 = private unnamed_addr constant [22 x i8] c"(std::size_t)i < pm.n\00", align 1
@.str23 = private unnamed_addr constant [60 x i8] c"/home/thomas/boost_1_52_0/boost/graph/two_bit_color_map.hpp\00", align 1
@__PRETTY_FUNCTION__._ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeE = private unnamed_addr constant [201 x i8] c"boost::two_bit_color_type boost::get(const two_bit_color_map<IndexMap> &, typename property_traits<IndexMap>::key_type) [IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned int>]\00", align 1
@.str24 = private unnamed_addr constant [56 x i8] c"The graph may not contain an edge with negative weight.\00", align 1
@_ZTVN5boost13negative_edgeE = linkonce_odr unnamed_addr constant [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTIN5boost13negative_edgeE to i8*), i8* bitcast (void (%"struct.boost::negative_edge"*)* @_ZN5boost13negative_edgeD1Ev to i8*), i8* bitcast (void (%"struct.boost::negative_edge"*)* @_ZN5boost13negative_edgeD0Ev to i8*), i8* bitcast (i8* (%"class.std::logic_error"*)* @_ZNKSt11logic_error4whatEv to i8*)]
@_ZTVN10__cxxabiv120__si_class_type_infoE = external global i8*
@_ZTSN5boost13negative_edgeE = linkonce_odr constant [24 x i8] c"N5boost13negative_edgeE\00"
@_ZTSN5boost9bad_graphE = linkonce_odr constant [19 x i8] c"N5boost9bad_graphE\00"
@_ZTISt16invalid_argument = external constant i8*
@_ZTIN5boost9bad_graphE = linkonce_odr unnamed_addr constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([19 x i8]* @_ZTSN5boost9bad_graphE, i32 0, i32 0), i8* bitcast (i8** @_ZTISt16invalid_argument to i8*) }
@_ZTIN5boost13negative_edgeE = linkonce_odr unnamed_addr constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([24 x i8]* @_ZTSN5boost13negative_edgeE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTIN5boost9bad_graphE to i8*) }
@_ZTVN5boost9bad_graphE = linkonce_odr unnamed_addr constant [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTIN5boost9bad_graphE to i8*), i8* bitcast (void (%"struct.boost::bad_graph"*)* @_ZN5boost9bad_graphD1Ev to i8*), i8* bitcast (void (%"struct.boost::bad_graph"*)* @_ZN5boost9bad_graphD0Ev to i8*), i8* bitcast (i8* (%"class.std::logic_error"*)* @_ZNKSt11logic_error4whatEv to i8*)]
@_ZTVN10__cxxabiv121__vmi_class_type_infoE = external global i8*
@_ZTSN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE = linkonce_odr constant [88 x i8] c"N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE\00"
@_ZTSN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE = linkonce_odr constant [69 x i8] c"N5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE\00"
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
@_ZTSN5boost9exceptionE = linkonce_odr constant [19 x i8] c"N5boost9exceptionE\00"
@_ZTIN5boost9exceptionE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([19 x i8]* @_ZTSN5boost9exceptionE, i32 0, i32 0) }
@_ZTIN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([69 x i8]* @_ZTSN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE, i32 0, i32 0), i32 0, i32 2, i8* bitcast ({ i8*, i8*, i8* }* @_ZTIN5boost13negative_edgeE to i8*), i32 2, i8* bitcast ({ i8*, i8* }* @_ZTIN5boost9exceptionE to i8*), i32 2050 }
@_ZTSN5boost16exception_detail10clone_baseE = linkonce_odr constant [39 x i8] c"N5boost16exception_detail10clone_baseE\00"
@_ZTIN5boost16exception_detail10clone_baseE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([39 x i8]* @_ZTSN5boost16exception_detail10clone_baseE, i32 0, i32 0) }
@_ZTIN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([88 x i8]* @_ZTSN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i32 0, i32 0), i32 0, i32 2, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE to i8*), i32 2, i8* bitcast ({ i8*, i8* }* @_ZTIN5boost16exception_detail10clone_baseE to i8*), i32 -3069 }
@_ZTVN5boost9exceptionE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTIN5boost9exceptionE to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)]
@_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE = linkonce_odr unnamed_addr constant [21 x i8*] [i8* inttoptr (i32 28 to i8*), i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED0Ev to i8*), i8* bitcast (i8* (%"class.std::logic_error"*)* @_ZNKSt11logic_error4whatEv to i8*), i8* bitcast (%"class.boost::exception_detail::clone_base"* (%"class.boost::exception_detail::clone_impl"*)* @_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE5cloneEv to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE7rethrowEv to i8*), i8* inttoptr (i32 -8 to i8*), i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZThn8_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZThn8_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED0Ev to i8*), i8* inttoptr (i32 -28 to i8*), i8* inttoptr (i32 -28 to i8*), i8* inttoptr (i32 -28 to i8*), i8* inttoptr (i32 -28 to i8*), i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE to i8*), i8* bitcast (%"class.boost::exception_detail::clone_base"* (%"class.boost::exception_detail::clone_impl"*)* @_ZTv0_n12_NK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE5cloneEv to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZTv0_n16_NK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE7rethrowEv to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZTv0_n20_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZTv0_n20_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED0Ev to i8*)]
@_ZTTN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE = linkonce_odr unnamed_addr constant [2 x i8*] [i8* bitcast (i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 3) to i8*), i8* bitcast (i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 17) to i8*)]
@_ZTVN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE = linkonce_odr unnamed_addr constant [9 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE to i8*), i8* bitcast (void (%"struct.boost::exception_detail::error_info_injector"*)* @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED1Ev to i8*), i8* bitcast (void (%"struct.boost::exception_detail::error_info_injector"*)* @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED0Ev to i8*), i8* bitcast (i8* (%"class.std::logic_error"*)* @_ZNKSt11logic_error4whatEv to i8*), i8* inttoptr (i32 -8 to i8*), i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE to i8*), i8* bitcast (void (%"struct.boost::exception_detail::error_info_injector"*)* @_ZThn8_N5boost16exception_detail19error_info_injectorINS_13negative_edgeEED1Ev to i8*), i8* bitcast (void (%"struct.boost::exception_detail::error_info_injector"*)* @_ZThn8_N5boost16exception_detail19error_info_injectorINS_13negative_edgeEED0Ev to i8*)]
@_ZTVSt16invalid_argument = external unnamed_addr constant [5 x i8*]
@_ZTVSt11logic_error = external unnamed_addr constant [5 x i8*]
@_ZTVSt9exception = external unnamed_addr constant [5 x i8*]
@_ZTVN5boost16exception_detail10clone_baseE = linkonce_odr unnamed_addr constant [6 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTIN5boost16exception_detail10clone_baseE to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_base"*)* @_ZN5boost16exception_detail10clone_baseD1Ev to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_base"*)* @_ZN5boost16exception_detail10clone_baseD0Ev to i8*)]
@.str25 = private unnamed_addr constant [22 x i8] c"vector::_M_insert_aux\00", align 1
@.str26 = private unnamed_addr constant [18 x i8] c"p == 0 || p != px\00", align 1
@.str27 = private unnamed_addr constant [59 x i8] c"/home/thomas/boost_1_52_0/boost/smart_ptr/scoped_array.hpp\00", align 1
@__PRETTY_FUNCTION__._ZN5boost12scoped_arrayIjE5resetEPj = private unnamed_addr constant [70 x i8] c"void boost::scoped_array<unsigned int>::reset(T *) [T = unsigned int]\00", align 1
@_ZZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeEE17elements_per_char = linkonce_odr constant i32 4, align 4
@__PRETTY_FUNCTION__._ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE = private unnamed_addr constant [207 x i8] c"void boost::put(const two_bit_color_map<IndexMap> &, typename property_traits<IndexMap>::key_type, boost::two_bit_color_type) [IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned int>]\00", align 1
@.str28 = private unnamed_addr constant [24 x i8] c"value >= 0 && value < 4\00", align 1
@_ZTVN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE = linkonce_odr unnamed_addr constant [7 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTIN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_impl_pd"*)* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED1Ev to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_impl_pd"*)* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED0Ev to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_impl_pd"*)* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEE7disposeEv to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_base"*)* @_ZN5boost6detail15sp_counted_base7destroyEv to i8*), i8* bitcast (i8* (%"class.boost::detail::sp_counted_impl_pd"*, %"class.std::type_info"*)* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEE11get_deleterERKSt9type_info to i8*)]
@_ZTSN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE = linkonce_odr constant [70 x i8] c"N5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE\00"
@_ZTSN5boost6detail15sp_counted_baseE = linkonce_odr constant [33 x i8] c"N5boost6detail15sp_counted_baseE\00"
@_ZTIN5boost6detail15sp_counted_baseE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([33 x i8]* @_ZTSN5boost6detail15sp_counted_baseE, i32 0, i32 0) }
@_ZTIN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE = linkonce_odr unnamed_addr constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([70 x i8]* @_ZTSN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTIN5boost6detail15sp_counted_baseE to i8*) }
@_ZTSN5boost21checked_array_deleterIhEE = linkonce_odr constant [35 x i8] c"N5boost21checked_array_deleterIhEE\00"
@_ZTIN5boost21checked_array_deleterIhEE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([35 x i8]* @_ZTSN5boost21checked_array_deleterIhEE, i32 0, i32 0) }
@_ZTVN5boost6detail15sp_counted_baseE = linkonce_odr unnamed_addr constant [7 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTIN5boost6detail15sp_counted_baseE to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_base"*)* @_ZN5boost6detail15sp_counted_baseD1Ev to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_base"*)* @_ZN5boost6detail15sp_counted_baseD0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_base"*)* @_ZN5boost6detail15sp_counted_base7destroyEv to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)]
@_ZTVN5boost12graph_detail8list_tagE = linkonce_odr unnamed_addr constant [12 x i8*] [i8* inttoptr (i32 4 to i8*), i8* inttoptr (i32 4 to i8*), i8* null, i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost12graph_detail8list_tagE to i8*), i8* null, i8* inttoptr (i32 -4 to i8*), i8* inttoptr (i32 -4 to i8*), i8* inttoptr (i32 -4 to i8*), i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost12graph_detail8list_tagE to i8*)]
@_ZTTN5boost12graph_detail8list_tagE = linkonce_odr unnamed_addr constant [13 x i8*] [i8* bitcast (i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 0, i64 7) to i8*), i8* bitcast (i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 0, i64 7) to i8*), i8* bitcast (i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 0, i64 7) to i8*), i8* bitcast (i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail8list_tagE0_NS0_24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail8list_tagE0_NS0_24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTCN5boost12graph_detail8list_tagE0_NS0_21forward_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([8 x i8*]* @_ZTCN5boost12graph_detail8list_tagE4_NS0_27back_insertion_sequence_tagE, i64 0, i64 5) to i8*), i8* bitcast (i8** getelementptr inbounds ([8 x i8*]* @_ZTCN5boost12graph_detail8list_tagE4_NS0_27back_insertion_sequence_tagE, i64 0, i64 5) to i8*), i8* bitcast (i8** getelementptr inbounds ([8 x i8*]* @_ZTCN5boost12graph_detail8list_tagE4_NS0_27back_insertion_sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([7 x i8*]* @_ZTCN5boost12graph_detail8list_tagE4_NS0_12sequence_tagE, i64 0, i64 4) to i8*), i8* bitcast (i8** getelementptr inbounds ([7 x i8*]* @_ZTCN5boost12graph_detail8list_tagE4_NS0_12sequence_tagE, i64 1, i64 0) to i8*)]
@_ZTSN5boost12graph_detail8list_tagE = linkonce_odr constant [32 x i8] c"N5boost12graph_detail8list_tagE\00"
@_ZTSN5boost12graph_detail24reversible_container_tagE = linkonce_odr constant [49 x i8] c"N5boost12graph_detail24reversible_container_tagE\00"
@_ZTSN5boost12graph_detail21forward_container_tagE = linkonce_odr constant [46 x i8] c"N5boost12graph_detail21forward_container_tagE\00"
@_ZTSN5boost12graph_detail13container_tagE = linkonce_odr constant [38 x i8] c"N5boost12graph_detail13container_tagE\00"
@_ZTIN5boost12graph_detail13container_tagE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([38 x i8]* @_ZTSN5boost12graph_detail13container_tagE, i32 0, i32 0) }
@_ZTIN5boost12graph_detail21forward_container_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([46 x i8]* @_ZTSN5boost12graph_detail21forward_container_tagE, i32 0, i32 0), i32 0, i32 1, i8* bitcast ({ i8*, i8* }* @_ZTIN5boost12graph_detail13container_tagE to i8*), i32 -3069 }
@_ZTIN5boost12graph_detail24reversible_container_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([49 x i8]* @_ZTSN5boost12graph_detail24reversible_container_tagE, i32 0, i32 0), i32 0, i32 1, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*), i32 -4093 }
@_ZTSN5boost12graph_detail27back_insertion_sequence_tagE = linkonce_odr constant [52 x i8] c"N5boost12graph_detail27back_insertion_sequence_tagE\00"
@_ZTSN5boost12graph_detail12sequence_tagE = linkonce_odr constant [37 x i8] c"N5boost12graph_detail12sequence_tagE\00"
@_ZTIN5boost12graph_detail12sequence_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([37 x i8]* @_ZTSN5boost12graph_detail12sequence_tagE, i32 0, i32 0), i32 0, i32 1, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*), i32 -4093 }
@_ZTIN5boost12graph_detail27back_insertion_sequence_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([52 x i8]* @_ZTSN5boost12graph_detail27back_insertion_sequence_tagE, i32 0, i32 0), i32 0, i32 1, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*), i32 -5117 }
@_ZTIN5boost12graph_detail8list_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([32 x i8]* @_ZTSN5boost12graph_detail8list_tagE, i32 0, i32 0), i32 2, i32 2, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail24reversible_container_tagE to i8*), i32 -5117, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27back_insertion_sequence_tagE to i8*), i32 -6141 }
@_ZTCN5boost12graph_detail8list_tagE0_NS0_24reversible_container_tagE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail24reversible_container_tagE to i8*)]
@_ZTCN5boost12graph_detail8list_tagE0_NS0_21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTCN5boost12graph_detail8list_tagE4_NS0_27back_insertion_sequence_tagE = linkonce_odr unnamed_addr constant [8 x i8*] [i8* null, i8* inttoptr (i32 -4 to i8*), i8* inttoptr (i32 -4 to i8*), i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27back_insertion_sequence_tagE to i8*), i8* null, i8* inttoptr (i32 4 to i8*), i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27back_insertion_sequence_tagE to i8*)]
@_ZTCN5boost12graph_detail8list_tagE4_NS0_12sequence_tagE = linkonce_odr unnamed_addr constant [7 x i8*] [i8* inttoptr (i32 -4 to i8*), i8* inttoptr (i32 -4 to i8*), i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*), i8* null, i8* inttoptr (i32 4 to i8*), i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*)]
@_ZTVN5boost12graph_detail27back_insertion_sequence_tagE = linkonce_odr unnamed_addr constant [5 x i8*] [i8* null, i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27back_insertion_sequence_tagE to i8*)]
@_ZTTN5boost12graph_detail27back_insertion_sequence_tagE = linkonce_odr unnamed_addr constant [6 x i8*] [i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_12sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_12sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_21forward_container_tagE, i64 1, i64 0) to i8*)]
@_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_12sequence_tagE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*)]
@_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTVN5boost12graph_detail12sequence_tagE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*)]
@_ZTTN5boost12graph_detail12sequence_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost12graph_detail12sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost12graph_detail12sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTCN5boost12graph_detail12sequence_tagE0_NS0_21forward_container_tagE, i64 1, i64 0) to i8*)]
@_ZTCN5boost12graph_detail12sequence_tagE0_NS0_21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTVN5boost12graph_detail24reversible_container_tagE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail24reversible_container_tagE to i8*)]
@_ZTTN5boost12graph_detail24reversible_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost12graph_detail24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost12graph_detail24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTCN5boost12graph_detail24reversible_container_tagE0_NS0_21forward_container_tagE, i64 1, i64 0) to i8*)]
@_ZTCN5boost12graph_detail24reversible_container_tagE0_NS0_21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTVN5boost12graph_detail21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTTN5boost12graph_detail21forward_container_tagE = linkonce_odr unnamed_addr constant [1 x i8*] [i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTVN5boost12graph_detail21forward_container_tagE, i64 1, i64 0) to i8*)]
@.str29 = private unnamed_addr constant [23 x i8] c"vector::_M_fill_insert\00", align 1
@.str30 = private unnamed_addr constant [32 x i8] c"list::_M_check_equal_allocators\00", align 1
@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]

define internal void @__cxx_global_var_init() section ".text.startup" {
entry:
  call void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"* @_ZStL8__ioinit)
  %0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::ios_base::Init"*)* @_ZNSt8ios_base4InitD1Ev to void (i8*)*), i8* getelementptr inbounds (%"class.std::ios_base::Init"* @_ZStL8__ioinit, i32 0, i32 0), i8* @__dso_handle) nounwind
  ret void
}

declare void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"*)

declare void @_ZNSt8ios_base4InitD1Ev(%"class.std::ios_base::Init"*)

declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) nounwind

define internal void @__cxx_global_var_init1() section ".text.startup" {
entry:
  call void @_ZN5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEC1ES6_(%"class.boost::detail::make_property_map_from_arg_pack_gen"* @_ZN5boost6detailL28make_color_map_from_arg_packE, i32 0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEC1ES6_(%"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, i32 %default_value) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::make_property_map_from_arg_pack_gen"*, align 4
  %default_value.addr = alloca i32, align 4
  store %"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr, align 4
  store i32 %default_value, i32* %default_value.addr, align 4
  %this1 = load %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr
  %0 = load i32* %default_value.addr, align 4
  call void @_ZN5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEC2ES6_(%"class.boost::detail::make_property_map_from_arg_pack_gen"* %this1, i32 %0)
  ret void
}

define i32 @main(i32, i8**) {
entry:
  %retval = alloca i32, align 4
  %.addr = alloca i32, align 4
  %.addr1 = alloca i8**, align 4
  %num_nodes = alloca i32, align 4
  %name = alloca [6 x i8], align 1
  %edge_array = alloca [9 x %"struct.std::pair"], align 4
  %ref.tmp = alloca i32, align 4
  %ref.tmp2 = alloca i32, align 4
  %ref.tmp3 = alloca i32, align 4
  %ref.tmp4 = alloca i32, align 4
  %ref.tmp6 = alloca i32, align 4
  %ref.tmp7 = alloca i32, align 4
  %ref.tmp9 = alloca i32, align 4
  %ref.tmp10 = alloca i32, align 4
  %ref.tmp12 = alloca i32, align 4
  %ref.tmp13 = alloca i32, align 4
  %ref.tmp15 = alloca i32, align 4
  %ref.tmp16 = alloca i32, align 4
  %ref.tmp18 = alloca i32, align 4
  %ref.tmp19 = alloca i32, align 4
  %ref.tmp21 = alloca i32, align 4
  %ref.tmp22 = alloca i32, align 4
  %ref.tmp24 = alloca i32, align 4
  %ref.tmp25 = alloca i32, align 4
  %weights = alloca [9 x i32], align 4
  %num_arcs = alloca i32, align 4
  %g = alloca %"class.boost::adjacency_list", align 4
  %ref.tmp28 = alloca %"struct.boost::no_property", align 1
  %weightmap = alloca %"struct.boost::adj_list_edge_property_map", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %p = alloca %"class.std::vector.3", align 4
  %ref.tmp30 = alloca i32, align 4
  %ref.tmp31 = alloca %"class.std::allocator.5", align 1
  %d = alloca %"class.std::vector.8", align 4
  %ref.tmp37 = alloca i32, align 4
  %ref.tmp38 = alloca %"class.std::allocator.10", align 1
  %s = alloca i32, align 4
  %ref.tmp44 = alloca %"struct.boost::bgl_named_params", align 4
  %ref.tmp47 = alloca i32*, align 4
  %tmp = alloca %"struct.boost::bgl_named_params.13", align 4
  %ref.tmp51 = alloca i32*, align 4
  %vi = alloca %"class.boost::range_detail::integer_iterator", align 4
  %vend = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp62 = alloca %"class.boost::tuples::tuple", align 4
  %ref.tmp64 = alloca %"struct.std::pair.15", align 4
  %dot_file = alloca %"class.std::basic_ofstream", align 4
  %ei = alloca %"class.boost::detail::adj_list_edge_iterator", align 4
  %ei_end = alloca %"class.boost::detail::adj_list_edge_iterator", align 4
  %tmp130 = alloca %"class.boost::tuples::tuple.17", align 4
  %ref.tmp133 = alloca %"struct.std::pair.20", align 4
  %e = alloca %"class.boost::detail::edge_desc_impl", align 4
  %u = alloca i32, align 4
  %v = alloca i32, align 4
  %cleanup.dest.slot = alloca i32
  store i32 0, i32* %retval
  store i32 %0, i32* %.addr, align 4
  store i8** %1, i8*** %.addr1, align 4
  store i32 5, i32* %num_nodes, align 4
  %2 = bitcast [6 x i8]* %name to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* getelementptr inbounds ([6 x i8]* @_ZZ4mainE4name, i32 0, i32 0), i32 6, i32 1, i1 false)
  %arrayinit.begin = getelementptr inbounds [9 x %"struct.std::pair"]* %edge_array, i32 0, i32 0
  store i32 0, i32* %ref.tmp, align 4
  store i32 2, i32* %ref.tmp2, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.begin, i32* %ref.tmp, i32* %ref.tmp2)
  %arrayinit.element = getelementptr inbounds %"struct.std::pair"* %arrayinit.begin, i32 1
  store i32 1, i32* %ref.tmp3, align 4
  store i32 1, i32* %ref.tmp4, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element, i32* %ref.tmp3, i32* %ref.tmp4)
  %arrayinit.element5 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element, i32 1
  store i32 1, i32* %ref.tmp6, align 4
  store i32 3, i32* %ref.tmp7, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element5, i32* %ref.tmp6, i32* %ref.tmp7)
  %arrayinit.element8 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element5, i32 1
  store i32 1, i32* %ref.tmp9, align 4
  store i32 4, i32* %ref.tmp10, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element8, i32* %ref.tmp9, i32* %ref.tmp10)
  %arrayinit.element11 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element8, i32 1
  store i32 2, i32* %ref.tmp12, align 4
  store i32 1, i32* %ref.tmp13, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element11, i32* %ref.tmp12, i32* %ref.tmp13)
  %arrayinit.element14 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element11, i32 1
  store i32 2, i32* %ref.tmp15, align 4
  store i32 3, i32* %ref.tmp16, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element14, i32* %ref.tmp15, i32* %ref.tmp16)
  %arrayinit.element17 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element14, i32 1
  store i32 3, i32* %ref.tmp18, align 4
  store i32 4, i32* %ref.tmp19, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element17, i32* %ref.tmp18, i32* %ref.tmp19)
  %arrayinit.element20 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element17, i32 1
  store i32 4, i32* %ref.tmp21, align 4
  store i32 0, i32* %ref.tmp22, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element20, i32* %ref.tmp21, i32* %ref.tmp22)
  %arrayinit.element23 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element20, i32 1
  store i32 4, i32* %ref.tmp24, align 4
  store i32 1, i32* %ref.tmp25, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element23, i32* %ref.tmp24, i32* %ref.tmp25)
  %3 = bitcast [9 x i32]* %weights to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* bitcast ([9 x i32]* @_ZZ4mainE7weights to i8*), i32 36, i32 4, i1 false)
  store i32 9, i32* %num_arcs, align 4
  %arraydecay = getelementptr inbounds [9 x %"struct.std::pair"]* %edge_array, i32 0, i32 0
  %arraydecay26 = getelementptr inbounds [9 x %"struct.std::pair"]* %edge_array, i32 0, i32 0
  %4 = load i32* %num_arcs, align 4
  %add.ptr = getelementptr inbounds %"struct.std::pair"* %arraydecay26, i32 %4
  %arraydecay27 = getelementptr inbounds [9 x i32]* %weights, i32 0, i32 0
  call void @_ZN5boost14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS4_EES4_S1_EC1IPSt4pairIiiEPiEET_SE_T0_jjRKS4_(%"class.boost::adjacency_list"* %g, %"struct.std::pair"* %arraydecay, %"struct.std::pair"* %add.ptr, i32* %arraydecay27, i32 5, i32 0, %"struct.boost::no_property"* %ref.tmp28)
  %5 = bitcast %"class.boost::adjacency_list"* %g to %"struct.boost::adj_list_helper"*
  invoke void @_ZN5boost3getINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EES9_EENS_12property_mapINT_10graph_typeET1_E4typeESJ_RNS_15adj_list_helperISH_T0_EE(%"struct.boost::adj_list_edge_property_map"* sret %weightmap, i32 0, %"struct.boost::adj_list_helper"* %5)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %6 = bitcast %"class.boost::adjacency_list"* %g to %"struct.boost::adj_list_helper"*
  %call = invoke i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISG_T0_EE(%"struct.boost::adj_list_helper"* %6)
          to label %invoke.cont29 unwind label %lpad

invoke.cont29:                                    ; preds = %invoke.cont
  store i32 0, i32* %ref.tmp30, align 4
  call void @_ZNSaIjEC1Ev(%"class.std::allocator.5"* %ref.tmp31) nounwind
  invoke void @_ZNSt6vectorIjSaIjEEC1EjRKjRKS0_(%"class.std::vector.3"* %p, i32 %call, i32* %ref.tmp30, %"class.std::allocator.5"* %ref.tmp31)
          to label %invoke.cont33 unwind label %lpad32

invoke.cont33:                                    ; preds = %invoke.cont29
  call void @_ZNSaIjED1Ev(%"class.std::allocator.5"* %ref.tmp31) nounwind
  %7 = bitcast %"class.boost::adjacency_list"* %g to %"struct.boost::adj_list_helper"*
  %call36 = invoke i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISG_T0_EE(%"struct.boost::adj_list_helper"* %7)
          to label %invoke.cont35 unwind label %lpad34

invoke.cont35:                                    ; preds = %invoke.cont33
  store i32 0, i32* %ref.tmp37, align 4
  call void @_ZNSaIiEC1Ev(%"class.std::allocator.10"* %ref.tmp38) nounwind
  invoke void @_ZNSt6vectorIiSaIiEEC1EjRKiRKS0_(%"class.std::vector.8"* %d, i32 %call36, i32* %ref.tmp37, %"class.std::allocator.10"* %ref.tmp38)
          to label %invoke.cont40 unwind label %lpad39

invoke.cont40:                                    ; preds = %invoke.cont35
  call void @_ZNSaIiED1Ev(%"class.std::allocator.10"* %ref.tmp38) nounwind
  %8 = bitcast %"class.boost::adjacency_list"* %g to %"class.boost::vec_adj_list_impl"*
  %call43 = invoke i32 @_ZN5boost6vertexINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEEENT0_17vertex_descriptorENSG_18vertices_size_typeERKNS_17vec_adj_list_implIT_SG_T1_EE(i32 0, %"class.boost::vec_adj_list_impl"* %8)
          to label %invoke.cont42 unwind label %lpad41

invoke.cont42:                                    ; preds = %invoke.cont40
  store i32 %call43, i32* %s, align 4
  %9 = load i32* %s, align 4
  %call46 = invoke i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %p, i32 0)
          to label %invoke.cont45 unwind label %lpad41

invoke.cont45:                                    ; preds = %invoke.cont42
  store i32* %call46, i32** %ref.tmp47, align 4
  invoke void @_ZN5boost15predecessor_mapIPjEENS_16bgl_named_paramsIT_NS_20vertex_predecessor_tENS_11no_propertyEEERKS3_(%"struct.boost::bgl_named_params.13"* sret %tmp, i32** %ref.tmp47)
          to label %invoke.cont48 unwind label %lpad41

invoke.cont48:                                    ; preds = %invoke.cont45
  %call50 = invoke i32* @_ZNSt6vectorIiSaIiEEixEj(%"class.std::vector.8"* %d, i32 0)
          to label %invoke.cont49 unwind label %lpad41

invoke.cont49:                                    ; preds = %invoke.cont48
  store i32* %call50, i32** %ref.tmp51, align 4
  invoke void @_ZNK5boost16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEE12distance_mapIPiEENS0_IT_NS_17vertex_distance_tES4_EERKS7_(%"struct.boost::bgl_named_params"* sret %ref.tmp44, %"struct.boost::bgl_named_params.13"* %tmp, i32** %ref.tmp51)
          to label %invoke.cont52 unwind label %lpad41

invoke.cont52:                                    ; preds = %invoke.cont49
  invoke void @_ZN5boost23dijkstra_shortest_pathsINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EEPiNS_17vertex_distance_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tES5_EEEEvRKT_NS_12graph_traitsISG_E17vertex_descriptorERKNSC_IT0_T1_T2_EE(%"class.boost::adjacency_list"* %g, i32 %9, %"struct.boost::bgl_named_params"* %ref.tmp44)
          to label %invoke.cont53 unwind label %lpad41

invoke.cont53:                                    ; preds = %invoke.cont52
  %call55 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([23 x i8]* @.str, i32 0, i32 0))
          to label %invoke.cont54 unwind label %lpad41

invoke.cont54:                                    ; preds = %invoke.cont53
  %call57 = invoke %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call55, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %invoke.cont56 unwind label %lpad41

invoke.cont56:                                    ; preds = %invoke.cont54
  invoke void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %vi)
          to label %invoke.cont59 unwind label %lpad41

invoke.cont59:                                    ; preds = %invoke.cont56
  invoke void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %vend)
          to label %invoke.cont61 unwind label %lpad41

invoke.cont61:                                    ; preds = %invoke.cont59
  invoke void @_ZN5boost6tuples3tieINS_12range_detail16integer_iteratorIjEES4_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERS7_RS8_(%"class.boost::tuples::tuple"* sret %tmp62, %"class.boost::range_detail::integer_iterator"* %vi, %"class.boost::range_detail::integer_iterator"* %vend)
          to label %invoke.cont63 unwind label %lpad41

invoke.cont63:                                    ; preds = %invoke.cont61
  %10 = bitcast %"class.boost::adjacency_list"* %g to %"struct.boost::adj_list_helper"*
  invoke void @_ZN5boost8verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEESt4pairINT_15vertex_iteratorESI_ERKNS_15adj_list_helperISH_T0_EE(%"struct.std::pair.15"* sret %ref.tmp64, %"struct.boost::adj_list_helper"* %10)
          to label %invoke.cont65 unwind label %lpad41

invoke.cont65:                                    ; preds = %invoke.cont63
  %call67 = invoke %"class.boost::tuples::tuple"* @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EaSIS4_S4_EERS7_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple"* %tmp62, %"struct.std::pair.15"* %ref.tmp64)
          to label %invoke.cont66 unwind label %lpad41

invoke.cont66:                                    ; preds = %invoke.cont65
  br label %for.cond

for.cond:                                         ; preds = %invoke.cont104, %invoke.cont66
  %11 = bitcast %"class.boost::range_detail::integer_iterator"* %vi to %"class.boost::iterator_facade"*
  %12 = bitcast %"class.boost::range_detail::integer_iterator"* %vend to %"class.boost::iterator_facade"*
  %call69 = invoke zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %11, %"class.boost::iterator_facade"* %12)
          to label %invoke.cont68 unwind label %lpad41

invoke.cont68:                                    ; preds = %for.cond
  br i1 %call69, label %for.body, label %for.end

for.body:                                         ; preds = %invoke.cont68
  %call71 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([10 x i8]* @.str2, i32 0, i32 0))
          to label %invoke.cont70 unwind label %lpad41

invoke.cont70:                                    ; preds = %for.body
  %13 = bitcast %"class.boost::range_detail::integer_iterator"* %vi to %"class.boost::iterator_facade"*
  %call73 = invoke i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %13)
          to label %invoke.cont72 unwind label %lpad41

invoke.cont72:                                    ; preds = %invoke.cont70
  %arrayidx = getelementptr inbounds [6 x i8]* %name, i32 0, i32 %call73
  %14 = load i8* %arrayidx, align 1
  %call75 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"* %call71, i8 signext %14)
          to label %invoke.cont74 unwind label %lpad41

invoke.cont74:                                    ; preds = %invoke.cont72
  %call77 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call75, i8* getelementptr inbounds ([5 x i8]* @.str3, i32 0, i32 0))
          to label %invoke.cont76 unwind label %lpad41

invoke.cont76:                                    ; preds = %invoke.cont74
  %15 = bitcast %"class.boost::range_detail::integer_iterator"* %vi to %"class.boost::iterator_facade"*
  %call79 = invoke i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %15)
          to label %invoke.cont78 unwind label %lpad41

invoke.cont78:                                    ; preds = %invoke.cont76
  %call81 = invoke i32* @_ZNSt6vectorIiSaIiEEixEj(%"class.std::vector.8"* %d, i32 %call79)
          to label %invoke.cont80 unwind label %lpad41

invoke.cont80:                                    ; preds = %invoke.cont78
  %16 = load i32* %call81
  %call83 = invoke %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call77, i32 %16)
          to label %invoke.cont82 unwind label %lpad41

invoke.cont82:                                    ; preds = %invoke.cont80
  %call85 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call83, i8* getelementptr inbounds ([3 x i8]* @.str4, i32 0, i32 0))
          to label %invoke.cont84 unwind label %lpad41

invoke.cont84:                                    ; preds = %invoke.cont82
  %call87 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([8 x i8]* @.str5, i32 0, i32 0))
          to label %invoke.cont86 unwind label %lpad41

invoke.cont86:                                    ; preds = %invoke.cont84
  %17 = bitcast %"class.boost::range_detail::integer_iterator"* %vi to %"class.boost::iterator_facade"*
  %call89 = invoke i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %17)
          to label %invoke.cont88 unwind label %lpad41

invoke.cont88:                                    ; preds = %invoke.cont86
  %arrayidx90 = getelementptr inbounds [6 x i8]* %name, i32 0, i32 %call89
  %18 = load i8* %arrayidx90, align 1
  %call92 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"* %call87, i8 signext %18)
          to label %invoke.cont91 unwind label %lpad41

invoke.cont91:                                    ; preds = %invoke.cont88
  %call94 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call92, i8* getelementptr inbounds ([5 x i8]* @.str3, i32 0, i32 0))
          to label %invoke.cont93 unwind label %lpad41

invoke.cont93:                                    ; preds = %invoke.cont91
  %19 = bitcast %"class.boost::range_detail::integer_iterator"* %vi to %"class.boost::iterator_facade"*
  %call96 = invoke i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %19)
          to label %invoke.cont95 unwind label %lpad41

invoke.cont95:                                    ; preds = %invoke.cont93
  %call98 = invoke i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %p, i32 %call96)
          to label %invoke.cont97 unwind label %lpad41

invoke.cont97:                                    ; preds = %invoke.cont95
  %20 = load i32* %call98
  %arrayidx99 = getelementptr inbounds [6 x i8]* %name, i32 0, i32 %20
  %21 = load i8* %arrayidx99, align 1
  %call101 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"* %call94, i8 signext %21)
          to label %invoke.cont100 unwind label %lpad41

invoke.cont100:                                   ; preds = %invoke.cont97
  %call103 = invoke %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call101, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %invoke.cont102 unwind label %lpad41

invoke.cont102:                                   ; preds = %invoke.cont100
  br label %for.inc

for.inc:                                          ; preds = %invoke.cont102
  %22 = bitcast %"class.boost::range_detail::integer_iterator"* %vi to %"class.boost::iterator_facade"*
  %call105 = invoke %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %22)
          to label %invoke.cont104 unwind label %lpad41

invoke.cont104:                                   ; preds = %for.inc
  br label %for.cond

lpad:                                             ; preds = %invoke.cont190, %invoke.cont, %entry
  %23 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %24 = extractvalue { i8*, i32 } %23, 0
  store i8* %24, i8** %exn.slot
  %25 = extractvalue { i8*, i32 } %23, 1
  store i32 %25, i32* %ehselector.slot
  br label %ehcleanup196

lpad32:                                           ; preds = %invoke.cont29
  %26 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %27 = extractvalue { i8*, i32 } %26, 0
  store i8* %27, i8** %exn.slot
  %28 = extractvalue { i8*, i32 } %26, 1
  store i32 %28, i32* %ehselector.slot
  call void @_ZNSaIjED1Ev(%"class.std::allocator.5"* %ref.tmp31) nounwind
  br label %ehcleanup196

lpad34:                                           ; preds = %invoke.cont187, %invoke.cont33
  %29 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %30 = extractvalue { i8*, i32 } %29, 0
  store i8* %30, i8** %exn.slot
  %31 = extractvalue { i8*, i32 } %29, 1
  store i32 %31, i32* %ehselector.slot
  br label %ehcleanup194

lpad39:                                           ; preds = %invoke.cont35
  %32 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %33 = extractvalue { i8*, i32 } %32, 0
  store i8* %33, i8** %exn.slot
  %34 = extractvalue { i8*, i32 } %32, 1
  store i32 %34, i32* %ehselector.slot
  call void @_ZNSaIiED1Ev(%"class.std::allocator.10"* %ref.tmp38) nounwind
  br label %ehcleanup194

lpad41:                                           ; preds = %invoke.cont184, %invoke.cont109, %invoke.cont106, %for.end, %for.inc, %invoke.cont100, %invoke.cont97, %invoke.cont95, %invoke.cont93, %invoke.cont91, %invoke.cont88, %invoke.cont86, %invoke.cont84, %invoke.cont82, %invoke.cont80, %invoke.cont78, %invoke.cont76, %invoke.cont74, %invoke.cont72, %invoke.cont70, %for.body, %for.cond, %invoke.cont65, %invoke.cont63, %invoke.cont61, %invoke.cont59, %invoke.cont56, %invoke.cont54, %invoke.cont53, %invoke.cont52, %invoke.cont49, %invoke.cont48, %invoke.cont45, %invoke.cont42, %invoke.cont40
  %35 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %36 = extractvalue { i8*, i32 } %35, 0
  store i8* %36, i8** %exn.slot
  %37 = extractvalue { i8*, i32 } %35, 1
  store i32 %37, i32* %ehselector.slot
  br label %ehcleanup191

for.end:                                          ; preds = %invoke.cont68
  %call107 = invoke %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* @_ZSt4cout, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %invoke.cont106 unwind label %lpad41

invoke.cont106:                                   ; preds = %for.end
  %call110 = invoke i32 @_ZStorSt13_Ios_OpenmodeS_(i32 16, i32 32)
          to label %invoke.cont109 unwind label %lpad41

invoke.cont109:                                   ; preds = %invoke.cont106
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode(%"class.std::basic_ofstream"* %dot_file, i8* getelementptr inbounds ([21 x i8]* @.str6, i32 0, i32 0), i32 %call110)
          to label %invoke.cont111 unwind label %lpad41

invoke.cont111:                                   ; preds = %invoke.cont109
  %38 = bitcast %"class.std::basic_ofstream"* %dot_file to %"class.std::basic_ostream"*
  %call114 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %38, i8* getelementptr inbounds ([13 x i8]* @.str7, i32 0, i32 0))
          to label %invoke.cont113 unwind label %lpad112

invoke.cont113:                                   ; preds = %invoke.cont111
  %call116 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call114, i8* getelementptr inbounds ([14 x i8]* @.str8, i32 0, i32 0))
          to label %invoke.cont115 unwind label %lpad112

invoke.cont115:                                   ; preds = %invoke.cont113
  %call118 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call116, i8* getelementptr inbounds ([14 x i8]* @.str9, i32 0, i32 0))
          to label %invoke.cont117 unwind label %lpad112

invoke.cont117:                                   ; preds = %invoke.cont115
  %call120 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call118, i8* getelementptr inbounds ([16 x i8]* @.str10, i32 0, i32 0))
          to label %invoke.cont119 unwind label %lpad112

invoke.cont119:                                   ; preds = %invoke.cont117
  %call122 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call120, i8* getelementptr inbounds ([22 x i8]* @.str11, i32 0, i32 0))
          to label %invoke.cont121 unwind label %lpad112

invoke.cont121:                                   ; preds = %invoke.cont119
  %call124 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call122, i8* getelementptr inbounds ([24 x i8]* @.str12, i32 0, i32 0))
          to label %invoke.cont123 unwind label %lpad112

invoke.cont123:                                   ; preds = %invoke.cont121
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC1Ev(%"class.boost::detail::adj_list_edge_iterator"* %ei)
          to label %invoke.cont126 unwind label %lpad112

invoke.cont126:                                   ; preds = %invoke.cont123
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC1Ev(%"class.boost::detail::adj_list_edge_iterator"* %ei_end)
          to label %invoke.cont129 unwind label %lpad128

invoke.cont129:                                   ; preds = %invoke.cont126
  invoke void @_ZN5boost6tuples3tieINS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEESP_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSS_RST_(%"class.boost::tuples::tuple.17"* sret %tmp130, %"class.boost::detail::adj_list_edge_iterator"* %ei, %"class.boost::detail::adj_list_edge_iterator"* %ei_end)
          to label %invoke.cont132 unwind label %lpad131

invoke.cont132:                                   ; preds = %invoke.cont129
  %39 = bitcast %"class.boost::adjacency_list"* %g to %"struct.boost::directed_edges_helper"*
  invoke void @_ZN5boost5edgesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configEEESt4pairINT_13edge_iteratorESG_ERKNS_21directed_edges_helperISF_EE(%"struct.std::pair.20"* sret %ref.tmp133, %"struct.boost::directed_edges_helper"* %39)
          to label %invoke.cont134 unwind label %lpad131

invoke.cont134:                                   ; preds = %invoke.cont132
  %call137 = invoke %"class.boost::tuples::tuple.17"* @_ZN5boost6tuples5tupleIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEESQ_NS0_9null_typeESR_SR_SR_SR_SR_SR_SR_EaSISP_SP_EERSS_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.17"* %tmp130, %"struct.std::pair.20"* %ref.tmp133)
          to label %invoke.cont136 unwind label %lpad135

invoke.cont136:                                   ; preds = %invoke.cont134
  invoke void @_ZNSt4pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_ED1Ev(%"struct.std::pair.20"* %ref.tmp133)
          to label %invoke.cont138 unwind label %lpad131

invoke.cont138:                                   ; preds = %invoke.cont136
  br label %for.cond140

for.cond140:                                      ; preds = %invoke.cont177, %invoke.cont138
  %call142 = invoke zeroext i1 @_ZNK5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEneERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %ei, %"class.boost::detail::adj_list_edge_iterator"* %ei_end)
          to label %invoke.cont141 unwind label %lpad131

invoke.cont141:                                   ; preds = %for.cond140
  br i1 %call142, label %for.body143, label %for.end179

for.body143:                                      ; preds = %invoke.cont141
  invoke void @_ZNK5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEdeEv(%"class.boost::detail::edge_desc_impl"* sret %e, %"class.boost::detail::adj_list_edge_iterator"* %ei)
          to label %invoke.cont145 unwind label %lpad131

invoke.cont145:                                   ; preds = %for.body143
  %40 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %call148 = invoke i32 @_ZN5boost6sourceINS_12directed_tagEjNS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EET0_RKNS_6detail9edge_baseIT_S9_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %40, %"class.boost::adjacency_list"* %g)
          to label %invoke.cont147 unwind label %lpad131

invoke.cont147:                                   ; preds = %invoke.cont145
  store i32 %call148, i32* %u, align 4
  %41 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %call151 = invoke i32 @_ZN5boost6targetINS_12directed_tagEjNS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EET0_RKNS_6detail9edge_baseIT_S9_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %41, %"class.boost::adjacency_list"* %g)
          to label %invoke.cont150 unwind label %lpad131

invoke.cont150:                                   ; preds = %invoke.cont147
  store i32 %call151, i32* %v, align 4
  %42 = bitcast %"class.std::basic_ofstream"* %dot_file to %"class.std::basic_ostream"*
  %43 = load i32* %u, align 4
  %arrayidx152 = getelementptr inbounds [6 x i8]* %name, i32 0, i32 %43
  %44 = load i8* %arrayidx152, align 1
  %call154 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"* %42, i8 signext %44)
          to label %invoke.cont153 unwind label %lpad131

invoke.cont153:                                   ; preds = %invoke.cont150
  %call156 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call154, i8* getelementptr inbounds ([5 x i8]* @.str13, i32 0, i32 0))
          to label %invoke.cont155 unwind label %lpad131

invoke.cont155:                                   ; preds = %invoke.cont153
  %45 = load i32* %v, align 4
  %arrayidx157 = getelementptr inbounds [6 x i8]* %name, i32 0, i32 %45
  %46 = load i8* %arrayidx157, align 1
  %call159 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"* %call156, i8 signext %46)
          to label %invoke.cont158 unwind label %lpad131

invoke.cont158:                                   ; preds = %invoke.cont155
  %call161 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call159, i8* getelementptr inbounds ([9 x i8]* @.str14, i32 0, i32 0))
          to label %invoke.cont160 unwind label %lpad131

invoke.cont160:                                   ; preds = %invoke.cont158
  %47 = bitcast %"struct.boost::adj_list_edge_property_map"* %weightmap to %"struct.boost::put_get_helper"*
  %call163 = invoke i32* @_ZN5boost3getINS_26adj_list_edge_property_mapINS_12directed_tagEiRijNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES5_EES3_NS_6detail14edge_desc_implIS2_jEEEET0_RKNS_14put_get_helperISC_T_EERKT1_(%"struct.boost::put_get_helper"* %47, %"class.boost::detail::edge_desc_impl"* %e)
          to label %invoke.cont162 unwind label %lpad131

invoke.cont162:                                   ; preds = %invoke.cont160
  %48 = load i32* %call163
  %call165 = invoke %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call161, i32 %48)
          to label %invoke.cont164 unwind label %lpad131

invoke.cont164:                                   ; preds = %invoke.cont162
  %call167 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call165, i8* getelementptr inbounds ([2 x i8]* @.str15, i32 0, i32 0))
          to label %invoke.cont166 unwind label %lpad131

invoke.cont166:                                   ; preds = %invoke.cont164
  %49 = load i32* %v, align 4
  %call169 = invoke i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %p, i32 %49)
          to label %invoke.cont168 unwind label %lpad131

invoke.cont168:                                   ; preds = %invoke.cont166
  %50 = load i32* %call169
  %51 = load i32* %u, align 4
  %cmp = icmp eq i32 %50, %51
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %invoke.cont168
  %52 = bitcast %"class.std::basic_ofstream"* %dot_file to %"class.std::basic_ostream"*
  %call171 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %52, i8* getelementptr inbounds ([16 x i8]* @.str16, i32 0, i32 0))
          to label %invoke.cont170 unwind label %lpad131

invoke.cont170:                                   ; preds = %if.then
  br label %if.end

lpad112:                                          ; preds = %invoke.cont182, %invoke.cont123, %invoke.cont121, %invoke.cont119, %invoke.cont117, %invoke.cont115, %invoke.cont113, %invoke.cont111
  %53 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %54 = extractvalue { i8*, i32 } %53, 0
  store i8* %54, i8** %exn.slot
  %55 = extractvalue { i8*, i32 } %53, 1
  store i32 %55, i32* %ehselector.slot
  br label %ehcleanup188

lpad128:                                          ; preds = %invoke.cont180, %invoke.cont126
  %56 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %57 = extractvalue { i8*, i32 } %56, 0
  store i8* %57, i8** %exn.slot
  %58 = extractvalue { i8*, i32 } %56, 1
  store i32 %58, i32* %ehselector.slot
  br label %ehcleanup185

lpad131:                                          ; preds = %for.end179, %for.inc176, %if.end, %if.else, %if.then, %invoke.cont166, %invoke.cont164, %invoke.cont162, %invoke.cont160, %invoke.cont158, %invoke.cont155, %invoke.cont153, %invoke.cont150, %invoke.cont147, %invoke.cont145, %for.body143, %for.cond140, %invoke.cont136, %invoke.cont132, %invoke.cont129
  %59 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %60 = extractvalue { i8*, i32 } %59, 0
  store i8* %60, i8** %exn.slot
  %61 = extractvalue { i8*, i32 } %59, 1
  store i32 %61, i32* %ehselector.slot
  br label %ehcleanup

lpad135:                                          ; preds = %invoke.cont134
  %62 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %63 = extractvalue { i8*, i32 } %62, 0
  store i8* %63, i8** %exn.slot
  %64 = extractvalue { i8*, i32 } %62, 1
  store i32 %64, i32* %ehselector.slot
  invoke void @_ZNSt4pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_ED1Ev(%"struct.std::pair.20"* %ref.tmp133)
          to label %invoke.cont139 unwind label %terminate.lpad

invoke.cont139:                                   ; preds = %lpad135
  br label %ehcleanup

if.else:                                          ; preds = %invoke.cont168
  %65 = bitcast %"class.std::basic_ofstream"* %dot_file to %"class.std::basic_ostream"*
  %call173 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %65, i8* getelementptr inbounds ([15 x i8]* @.str17, i32 0, i32 0))
          to label %invoke.cont172 unwind label %lpad131

invoke.cont172:                                   ; preds = %if.else
  br label %if.end

if.end:                                           ; preds = %invoke.cont172, %invoke.cont170
  %66 = bitcast %"class.std::basic_ofstream"* %dot_file to %"class.std::basic_ostream"*
  %call175 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %66, i8* getelementptr inbounds ([2 x i8]* @.str18, i32 0, i32 0))
          to label %invoke.cont174 unwind label %lpad131

invoke.cont174:                                   ; preds = %if.end
  br label %for.inc176

for.inc176:                                       ; preds = %invoke.cont174
  %call178 = invoke %"class.boost::detail::adj_list_edge_iterator"* @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEppEv(%"class.boost::detail::adj_list_edge_iterator"* %ei)
          to label %invoke.cont177 unwind label %lpad131

invoke.cont177:                                   ; preds = %for.inc176
  br label %for.cond140

for.end179:                                       ; preds = %invoke.cont141
  %67 = bitcast %"class.std::basic_ofstream"* %dot_file to %"class.std::basic_ostream"*
  %call181 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %67, i8* getelementptr inbounds ([2 x i8]* @.str19, i32 0, i32 0))
          to label %invoke.cont180 unwind label %lpad131

invoke.cont180:                                   ; preds = %for.end179
  store i32 0, i32* %retval
  store i32 1, i32* %cleanup.dest.slot
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %ei_end)
          to label %invoke.cont182 unwind label %lpad128

invoke.cont182:                                   ; preds = %invoke.cont180
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %ei)
          to label %invoke.cont184 unwind label %lpad112

ehcleanup:                                        ; preds = %invoke.cont139, %lpad131
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %ei_end)
          to label %invoke.cont183 unwind label %terminate.lpad

invoke.cont183:                                   ; preds = %ehcleanup
  br label %ehcleanup185

invoke.cont184:                                   ; preds = %invoke.cont182
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(%"class.std::basic_ofstream"* %dot_file)
          to label %invoke.cont187 unwind label %lpad41

ehcleanup185:                                     ; preds = %invoke.cont183, %lpad128
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %ei)
          to label %invoke.cont186 unwind label %terminate.lpad

invoke.cont186:                                   ; preds = %ehcleanup185
  br label %ehcleanup188

invoke.cont187:                                   ; preds = %invoke.cont184
  invoke void @_ZNSt6vectorIiSaIiEED1Ev(%"class.std::vector.8"* %d)
          to label %invoke.cont190 unwind label %lpad34

ehcleanup188:                                     ; preds = %invoke.cont186, %lpad112
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(%"class.std::basic_ofstream"* %dot_file)
          to label %invoke.cont189 unwind label %terminate.lpad

invoke.cont189:                                   ; preds = %ehcleanup188
  br label %ehcleanup191

invoke.cont190:                                   ; preds = %invoke.cont187
  invoke void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %p)
          to label %invoke.cont193 unwind label %lpad

ehcleanup191:                                     ; preds = %invoke.cont189, %lpad41
  invoke void @_ZNSt6vectorIiSaIiEED1Ev(%"class.std::vector.8"* %d)
          to label %invoke.cont192 unwind label %terminate.lpad

invoke.cont192:                                   ; preds = %ehcleanup191
  br label %ehcleanup194

invoke.cont193:                                   ; preds = %invoke.cont190
  call void @_ZN5boost14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS4_EES4_S1_ED1Ev(%"class.boost::adjacency_list"* %g)
  %68 = load i32* %retval
  ret i32 %68

ehcleanup194:                                     ; preds = %invoke.cont192, %lpad39, %lpad34
  invoke void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %p)
          to label %invoke.cont195 unwind label %terminate.lpad

invoke.cont195:                                   ; preds = %ehcleanup194
  br label %ehcleanup196

ehcleanup196:                                     ; preds = %invoke.cont195, %lpad32, %lpad
  invoke void @_ZN5boost14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS4_EES4_S1_ED1Ev(%"class.boost::adjacency_list"* %g)
          to label %invoke.cont197 unwind label %terminate.lpad

invoke.cont197:                                   ; preds = %ehcleanup196
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont197
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val198 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val198

terminate.lpad:                                   ; preds = %ehcleanup196, %ehcleanup194, %ehcleanup191, %ehcleanup188, %ehcleanup185, %ehcleanup, %lpad135
  %69 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind

define linkonce_odr void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %this, i32* %__a, i32* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair"*, align 4
  %__a.addr = alloca i32*, align 4
  %__b.addr = alloca i32*, align 4
  store %"struct.std::pair"* %this, %"struct.std::pair"** %this.addr, align 4
  store i32* %__a, i32** %__a.addr, align 4
  store i32* %__b, i32** %__b.addr, align 4
  %this1 = load %"struct.std::pair"** %this.addr
  %0 = load i32** %__a.addr
  %1 = load i32** %__b.addr
  call void @_ZNSt4pairIiiEC2ERKiS2_(%"struct.std::pair"* %this1, i32* %0, i32* %1)
  ret void
}

define linkonce_odr void @_ZN5boost14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS4_EES4_S1_EC1IPSt4pairIiiEPiEET_SE_T0_jjRKS4_(%"class.boost::adjacency_list"* %this, %"struct.std::pair"* %first, %"struct.std::pair"* %last, i32* %ep_iter, i32 %n, i32, %"struct.boost::no_property"* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::adjacency_list"*, align 4
  %first.addr = alloca %"struct.std::pair"*, align 4
  %last.addr = alloca %"struct.std::pair"*, align 4
  %ep_iter.addr = alloca i32*, align 4
  %n.addr = alloca i32, align 4
  %.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.boost::adjacency_list"* %this, %"class.boost::adjacency_list"** %this.addr, align 4
  store %"struct.std::pair"* %first, %"struct.std::pair"** %first.addr, align 4
  store %"struct.std::pair"* %last, %"struct.std::pair"** %last.addr, align 4
  store i32* %ep_iter, i32** %ep_iter.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store i32 %0, i32* %.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::adjacency_list"** %this.addr
  %1 = load %"struct.std::pair"** %first.addr, align 4
  %2 = load %"struct.std::pair"** %last.addr, align 4
  %3 = load i32** %ep_iter.addr, align 4
  %4 = load i32* %n.addr, align 4
  %5 = load i32* %.addr, align 4
  %6 = load %"struct.boost::no_property"** %p.addr
  call void @_ZN5boost14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS4_EES4_S1_EC2IPSt4pairIiiEPiEET_SE_T0_jjRKS4_(%"class.boost::adjacency_list"* %this1, %"struct.std::pair"* %1, %"struct.std::pair"* %2, i32* %3, i32 %4, i32 %5, %"struct.boost::no_property"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost3getINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EES9_EENS_12property_mapINT_10graph_typeET1_E4typeESJ_RNS_15adj_list_helperISH_T0_EE(%"struct.boost::adj_list_edge_property_map"* noalias sret %agg.result, i32 %p, %"struct.boost::adj_list_helper"* %g) inlinehint {
entry:
  %p.addr = alloca i32, align 4
  %g.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %agg.tmp = alloca %"struct.boost::edge_property_tag", align 1
  store i32 %p, i32* %p.addr, align 4
  store %"struct.boost::adj_list_helper"* %g, %"struct.boost::adj_list_helper"** %g.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g.addr, align 4
  %1 = load i32* %p.addr, align 4
  call void @_ZN5boost6detail12get_dispatchINS0_12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EES9_EENS_12property_mapINT_10graph_typeET1_E4typeERNS_15adj_list_helperISH_T0_EESJ_NS_17edge_property_tagE(%"struct.boost::adj_list_edge_property_map"* sret %agg.result, %"struct.boost::adj_list_helper"* %0, i32 %1)
  ret void
}

declare i32 @__gxx_personality_v0(...)

define linkonce_odr void @_ZNSt6vectorIjSaIjEEC1EjRKjRKS0_(%"class.std::vector.3"* %this, i32 %__n, i32* %__value, %"class.std::allocator.5"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %1 = load i32** %__value.addr
  %2 = load %"class.std::allocator.5"** %__a.addr
  call void @_ZNSt6vectorIjSaIjEEC2EjRKjRKS0_(%"class.std::vector.3"* %this1, i32 %0, i32* %1, %"class.std::allocator.5"* %2)
  ret void
}

define linkonce_odr i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISG_T0_EE(%"struct.boost::adj_list_helper"* %g_) inlinehint {
entry:
  %g_.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  %tmp = alloca %"class.boost::integer_range", align 4
  store %"struct.boost::adj_list_helper"* %g_, %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::adj_list_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %g, align 4
  %2 = load %"class.boost::adjacency_list"** %g, align 4
  %3 = bitcast %"class.boost::adjacency_list"* %2 to %"class.boost::vec_adj_list_impl"*
  call void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp, %"class.boost::vec_adj_list_impl"* %3)
  %4 = bitcast %"class.boost::integer_range"* %tmp to %"class.boost::iterator_range"*
  %call = call i32 @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE4sizeEv(%"class.boost::iterator_range"* %4)
  ret i32 %call
}

define linkonce_odr void @_ZNSaIjEC1Ev(%"class.std::allocator.5"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  call void @_ZNSaIjEC2Ev(%"class.std::allocator.5"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIjED1Ev(%"class.std::allocator.5"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  call void @_ZNSaIjED2Ev(%"class.std::allocator.5"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt6vectorIiSaIiEEC1EjRKiRKS0_(%"class.std::vector.8"* %this, i32 %__n, i32* %__value, %"class.std::allocator.10"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.8"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  %__a.addr = alloca %"class.std::allocator.10"*, align 4
  store %"class.std::vector.8"* %this, %"class.std::vector.8"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  store %"class.std::allocator.10"* %__a, %"class.std::allocator.10"** %__a.addr, align 4
  %this1 = load %"class.std::vector.8"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %1 = load i32** %__value.addr
  %2 = load %"class.std::allocator.10"** %__a.addr
  call void @_ZNSt6vectorIiSaIiEEC2EjRKiRKS0_(%"class.std::vector.8"* %this1, i32 %0, i32* %1, %"class.std::allocator.10"* %2)
  ret void
}

define linkonce_odr void @_ZNSaIiEC1Ev(%"class.std::allocator.10"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.10"*, align 4
  store %"class.std::allocator.10"* %this, %"class.std::allocator.10"** %this.addr, align 4
  %this1 = load %"class.std::allocator.10"** %this.addr
  call void @_ZNSaIiEC2Ev(%"class.std::allocator.10"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIiED1Ev(%"class.std::allocator.10"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.10"*, align 4
  store %"class.std::allocator.10"* %this, %"class.std::allocator.10"** %this.addr, align 4
  %this1 = load %"class.std::allocator.10"** %this.addr
  call void @_ZNSaIiED2Ev(%"class.std::allocator.10"* %this1) nounwind
  ret void
}

define linkonce_odr i32 @_ZN5boost6vertexINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEEENT0_17vertex_descriptorENSG_18vertices_size_typeERKNS_17vec_adj_list_implIT_SG_T1_EE(i32 %n, %"class.boost::vec_adj_list_impl"*) nounwind inlinehint {
entry:
  %n.addr = alloca i32, align 4
  %.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  store i32 %n, i32* %n.addr, align 4
  store %"class.boost::vec_adj_list_impl"* %0, %"class.boost::vec_adj_list_impl"** %.addr, align 4
  %1 = load i32* %n.addr, align 4
  ret i32 %1
}

define linkonce_odr void @_ZN5boost23dijkstra_shortest_pathsINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EEPiNS_17vertex_distance_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tES5_EEEEvRKT_NS_12graph_traitsISG_E17vertex_descriptorERKNSC_IT0_T1_T2_EE(%"class.boost::adjacency_list"* %g, i32 %s, %"struct.boost::bgl_named_params"* %params) inlinehint {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %params.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %agg.tmp = alloca %"struct.boost::adj_list_edge_property_map.33", align 4
  %agg.tmp2 = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store %"struct.boost::bgl_named_params"* %params, %"struct.boost::bgl_named_params"** %params.addr, align 4
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load i32* %s.addr, align 4
  %2 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call = call i32** @_ZN5boost9get_paramINS_17vertex_distance_tENS_16bgl_named_paramsIPiS1_NS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSB_SA_(%"struct.boost::bgl_named_params"* %2, i32 0)
  %3 = load i32** %call
  %4 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call1 = call %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_13edge_weight_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %4, i32 0)
  %5 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost17choose_const_pmapINS_15param_not_foundENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES8_EENS_6detail18choose_impl_resultIN4mpl_5bool_ILb1EEET0_T_T1_E4typeERKSH_RKSG_SI_(%"struct.boost::adj_list_edge_property_map.33"* sret %agg.tmp, %"struct.boost::param_not_found"* %call1, %"class.boost::adjacency_list"* %5, i32 0)
  %6 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call3 = call %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14vertex_index_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %6, i32 0)
  %7 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost17choose_const_pmapINS_15param_not_foundENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_14vertex_index_tEEENS_6detail18choose_impl_resultIN4mpl_5bool_ILb1EEET0_T_T1_E4typeERKSI_RKSH_SJ_(%"struct.boost::vec_adj_list_vertex_id_map"* sret %agg.tmp2, %"struct.boost::param_not_found"* %call3, %"class.boost::adjacency_list"* %7, i32 0)
  %8 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  call void @_ZN5boost6detail18dijkstra_dispatch1INS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EEPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS9_S8_EENS_26vec_adj_list_vertex_id_mapIS6_jEENS_16bgl_named_paramsISB_NS_17vertex_distance_tENSK_IPjNS_20vertex_predecessor_tES6_EEEEEEvRKT_NS_12graph_traitsISQ_E17vertex_descriptorET0_T1_T2_RKT3_(%"class.boost::adjacency_list"* %0, i32 %1, i32* %3, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %agg.tmp, %"struct.boost::bgl_named_params"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15predecessor_mapIPjEENS_16bgl_named_paramsIT_NS_20vertex_predecessor_tENS_11no_propertyEEERKS3_(%"struct.boost::bgl_named_params.13"* noalias sret %agg.result, i32** %p) {
entry:
  %p.addr = alloca i32**, align 4
  store i32** %p, i32*** %p.addr, align 4
  %0 = load i32*** %p.addr, align 4
  %1 = load i32** %0, align 4
  call void @_ZN5boost16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEC1ES1_(%"struct.boost::bgl_named_params.13"* %agg.result, i32* %1)
  ret void
}

define linkonce_odr i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %this, i32 %__n) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__n.addr = alloca i32, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load i32** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds i32* %1, i32 %2
  ret i32* %add.ptr
}

define linkonce_odr void @_ZNK5boost16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEE12distance_mapIPiEENS0_IT_NS_17vertex_distance_tES4_EERKS7_(%"struct.boost::bgl_named_params"* noalias sret %agg.result, %"struct.boost::bgl_named_params.13"* %this, i32** %p) align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %p.addr = alloca i32**, align 4
  store %"struct.boost::bgl_named_params.13"* %this, %"struct.boost::bgl_named_params.13"** %this.addr, align 4
  store i32** %p, i32*** %p.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params.13"** %this.addr
  %0 = load i32*** %p.addr, align 4
  %1 = load i32** %0, align 4
  call void @_ZN5boost16bgl_named_paramsIPiNS_17vertex_distance_tENS0_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEC1ES1_RKS6_(%"struct.boost::bgl_named_params"* %agg.result, i32* %1, %"struct.boost::bgl_named_params.13"* %this1)
  ret void
}

define linkonce_odr i32* @_ZNSt6vectorIiSaIiEEixEj(%"class.std::vector.8"* %this, i32 %__n) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector.8"*, align 4
  %__n.addr = alloca i32, align 4
  store %"class.std::vector.8"* %this, %"class.std::vector.8"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"class.std::vector.8"** %this.addr
  %0 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.9"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load i32** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds i32* %1, i32 %2
  ret i32* %add.ptr
}

declare %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"*, i8*)

declare %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"*, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)*)

declare %"class.std::basic_ostream"* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(%"class.std::basic_ostream"*)

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  call void @_ZN5boost12range_detail16integer_iteratorIjEC2Ev(%"class.boost::range_detail::integer_iterator"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples3tieINS_12range_detail16integer_iteratorIjEES4_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERS7_RS8_(%"class.boost::tuples::tuple"* noalias sret %agg.result, %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"* %t1) inlinehint {
entry:
  %t0.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  %0 = load %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  %1 = load %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  call void @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EC1ES5_S5_(%"class.boost::tuples::tuple"* %agg.result, %"class.boost::range_detail::integer_iterator"* %0, %"class.boost::range_detail::integer_iterator"* %1)
  ret void
}

define linkonce_odr %"class.boost::tuples::tuple"* @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EaSIS4_S4_EERS7_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple"* %this, %"struct.std::pair.15"* %k) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple"*, align 4
  %k.addr = alloca %"struct.std::pair.15"*, align 4
  store %"class.boost::tuples::tuple"* %this, %"class.boost::tuples::tuple"** %this.addr, align 4
  store %"struct.std::pair.15"* %k, %"struct.std::pair.15"** %k.addr, align 4
  %this1 = load %"class.boost::tuples::tuple"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple"* %this1 to %"struct.boost::tuples::cons"*
  %head = getelementptr inbounds %"struct.boost::tuples::cons"* %0, i32 0, i32 0
  %ref = load %"class.boost::range_detail::integer_iterator"** %head, align 4
  %1 = load %"struct.std::pair.15"** %k.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.15"* %1, i32 0, i32 0
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %ref to i8*
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = bitcast %"class.boost::tuples::tuple"* %this1 to %"struct.boost::tuples::cons"*
  %tail = getelementptr inbounds %"struct.boost::tuples::cons"* %4, i32 0, i32 1
  %head2 = getelementptr inbounds %"struct.boost::tuples::cons.14"* %tail, i32 0, i32 0
  %ref3 = load %"class.boost::range_detail::integer_iterator"** %head2, align 4
  %5 = load %"struct.std::pair.15"** %k.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.15"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::range_detail::integer_iterator"* %ref3 to i8*
  %7 = bitcast %"class.boost::range_detail::integer_iterator"* %second to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 4, i32 4, i1 false)
  ret %"class.boost::tuples::tuple"* %this1
}

define linkonce_odr void @_ZN5boost8verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEESt4pairINT_15vertex_iteratorESI_ERKNS_15adj_list_helperISH_T0_EE(%"struct.std::pair.15"* noalias sret %agg.result, %"struct.boost::adj_list_helper"* %g_) inlinehint {
entry:
  %g_.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %cg = alloca %"class.boost::adjacency_list"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp = alloca %"class.boost::integer_range", align 4
  %agg.tmp1 = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp2 = alloca %"class.boost::integer_range", align 4
  store %"struct.boost::adj_list_helper"* %g_, %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::adj_list_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %cg, align 4
  %2 = load %"class.boost::adjacency_list"** %cg, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %g, align 4
  %3 = load %"class.boost::adjacency_list"** %g, align 4
  %4 = bitcast %"class.boost::adjacency_list"* %3 to %"class.boost::vec_adj_list_impl"*
  call void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp, %"class.boost::vec_adj_list_impl"* %4)
  %5 = bitcast %"class.boost::integer_range"* %tmp to %"class.boost::iterator_range"*
  call void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE5beginEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp, %"class.boost::iterator_range"* %5)
  %6 = load %"class.boost::adjacency_list"** %g, align 4
  %7 = bitcast %"class.boost::adjacency_list"* %6 to %"class.boost::vec_adj_list_impl"*
  call void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp2, %"class.boost::vec_adj_list_impl"* %7)
  %8 = bitcast %"class.boost::integer_range"* %tmp2 to %"class.boost::iterator_range"*
  call void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE3endEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp1, %"class.boost::iterator_range"* %8)
  call void @_ZSt9make_pairIN5boost12range_detail16integer_iteratorIjEES3_ESt4pairIT_T0_ES5_S6_(%"struct.std::pair.15"* sret %agg.result, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp1)
  ret void
}

define linkonce_odr zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"* %rhs) inlinehint {
entry:
  %lhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %rhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_.30", align 1
  %ref.tmp = alloca %"struct.boost::is_convertible.32", align 1
  store %"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"** %lhs.addr, align 4
  store %"class.boost::iterator_facade"* %rhs, %"class.boost::iterator_facade"** %rhs.addr, align 4
  %0 = load %"class.boost::iterator_facade"** %lhs.addr, align 4
  %1 = bitcast %"class.boost::iterator_facade"* %0 to %"class.boost::range_detail::integer_iterator"*
  %2 = load %"class.boost::iterator_facade"** %rhs.addr, align 4
  %3 = bitcast %"class.boost::iterator_facade"* %2 to %"class.boost::range_detail::integer_iterator"*
  %4 = bitcast %"struct.boost::is_convertible.32"* %ref.tmp to %"struct.mpl_::bool_.30"*
  %call = call zeroext i1 @_ZN5boost20iterator_core_access5equalINS_12range_detail16integer_iteratorIjEES4_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %3)
  %lnot = xor i1 %call, true
  ret i1 %lnot
}

declare %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"*, i8 signext)

define linkonce_odr i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade"*, align 4
  store %"class.boost::iterator_facade"* %this, %"class.boost::iterator_facade"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade"** %this.addr
  %call = call %"class.boost::range_detail::integer_iterator"* @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this1)
  %call2 = call i32 @_ZN5boost20iterator_core_access11dereferenceINS_12range_detail16integer_iteratorIjEEEENT_9referenceERKS5_(%"class.boost::range_detail::integer_iterator"* %call)
  ret i32 %call2
}

declare %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"*, i32)

define linkonce_odr %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade"*, align 4
  store %"class.boost::iterator_facade"* %this, %"class.boost::iterator_facade"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade"** %this.addr
  %call = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this1)
  call void @_ZN5boost20iterator_core_access9incrementINS_12range_detail16integer_iteratorIjEEEEvRT_(%"class.boost::range_detail::integer_iterator"* %call)
  %call2 = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this1)
  ret %"class.boost::range_detail::integer_iterator"* %call2
}

declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode(%"class.std::basic_ofstream"*, i8*, i32)

define linkonce_odr i32 @_ZStorSt13_Ios_OpenmodeS_(i32 %__a, i32 %__b) nounwind inlinehint {
entry:
  %__a.addr = alloca i32, align 4
  %__b.addr = alloca i32, align 4
  store i32 %__a, i32* %__a.addr, align 4
  store i32 %__b, i32* %__b.addr, align 4
  %0 = load i32* %__a.addr, align 4
  %1 = load i32* %__b.addr, align 4
  %or = or i32 %0, %1
  ret i32 %or
}

define linkonce_odr void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC1Ev(%"class.boost::detail::adj_list_edge_iterator"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  call void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC2Ev(%"class.boost::detail::adj_list_edge_iterator"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples3tieINS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEESP_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSS_RST_(%"class.boost::tuples::tuple.17"* noalias sret %agg.result, %"class.boost::detail::adj_list_edge_iterator"* %t0, %"class.boost::detail::adj_list_edge_iterator"* %t1) inlinehint {
entry:
  %t0.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %t1.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t0, %"class.boost::detail::adj_list_edge_iterator"** %t0.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t1, %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  %0 = load %"class.boost::detail::adj_list_edge_iterator"** %t0.addr, align 4
  %1 = load %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  call void @_ZN5boost6tuples5tupleIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEESQ_NS0_9null_typeESR_SR_SR_SR_SR_SR_SR_EC1ESQ_SQ_(%"class.boost::tuples::tuple.17"* %agg.result, %"class.boost::detail::adj_list_edge_iterator"* %0, %"class.boost::detail::adj_list_edge_iterator"* %1)
  ret void
}

define linkonce_odr %"class.boost::tuples::tuple.17"* @_ZN5boost6tuples5tupleIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEESQ_NS0_9null_typeESR_SR_SR_SR_SR_SR_SR_EaSISP_SP_EERSS_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.17"* %this, %"struct.std::pair.20"* %k) align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.17"*, align 4
  %k.addr = alloca %"struct.std::pair.20"*, align 4
  store %"class.boost::tuples::tuple.17"* %this, %"class.boost::tuples::tuple.17"** %this.addr, align 4
  store %"struct.std::pair.20"* %k, %"struct.std::pair.20"** %k.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.17"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.17"* %this1 to %"struct.boost::tuples::cons.18"*
  %head = getelementptr inbounds %"struct.boost::tuples::cons.18"* %0, i32 0, i32 0
  %ref = load %"class.boost::detail::adj_list_edge_iterator"** %head, align 4
  %1 = load %"struct.std::pair.20"** %k.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.20"* %1, i32 0, i32 0
  %call = call %"class.boost::detail::adj_list_edge_iterator"* @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEaSERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %ref, %"class.boost::detail::adj_list_edge_iterator"* %first)
  %2 = bitcast %"class.boost::tuples::tuple.17"* %this1 to %"struct.boost::tuples::cons.18"*
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.18"* %2, i32 0, i32 1
  %head2 = getelementptr inbounds %"struct.boost::tuples::cons.19"* %tail, i32 0, i32 0
  %ref3 = load %"class.boost::detail::adj_list_edge_iterator"** %head2, align 4
  %3 = load %"struct.std::pair.20"** %k.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.20"* %3, i32 0, i32 1
  %call4 = call %"class.boost::detail::adj_list_edge_iterator"* @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEaSERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %ref3, %"class.boost::detail::adj_list_edge_iterator"* %second)
  ret %"class.boost::tuples::tuple.17"* %this1
}

define linkonce_odr void @_ZN5boost5edgesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configEEESt4pairINT_13edge_iteratorESG_ERKNS_21directed_edges_helperISF_EE(%"struct.std::pair.20"* noalias sret %agg.result, %"struct.boost::directed_edges_helper"* %g_) inlinehint {
entry:
  %g_.addr = alloca %"struct.boost::directed_edges_helper"*, align 4
  %cg = alloca %"class.boost::adjacency_list"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::adj_list_edge_iterator", align 4
  %agg.tmp1 = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp = alloca %"class.boost::integer_range", align 4
  %agg.tmp2 = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp3 = alloca %"class.boost::integer_range", align 4
  %agg.tmp4 = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp5 = alloca %"class.boost::integer_range", align 4
  %agg.tmp6 = alloca %"class.boost::detail::adj_list_edge_iterator", align 4
  %agg.tmp7 = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp8 = alloca %"class.boost::integer_range", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp10 = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp11 = alloca %"class.boost::integer_range", align 4
  %agg.tmp14 = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp15 = alloca %"class.boost::integer_range", align 4
  store %"struct.boost::directed_edges_helper"* %g_, %"struct.boost::directed_edges_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::directed_edges_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::directed_edges_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %cg, align 4
  %2 = load %"class.boost::adjacency_list"** %cg, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %g, align 4
  %3 = load %"class.boost::adjacency_list"** %g, align 4
  %4 = bitcast %"class.boost::adjacency_list"* %3 to %"class.boost::vec_adj_list_impl"*
  call void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp, %"class.boost::vec_adj_list_impl"* %4)
  %5 = bitcast %"class.boost::integer_range"* %tmp to %"class.boost::iterator_range"*
  call void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE5beginEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp1, %"class.boost::iterator_range"* %5)
  %6 = load %"class.boost::adjacency_list"** %g, align 4
  %7 = bitcast %"class.boost::adjacency_list"* %6 to %"class.boost::vec_adj_list_impl"*
  call void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp3, %"class.boost::vec_adj_list_impl"* %7)
  %8 = bitcast %"class.boost::integer_range"* %tmp3 to %"class.boost::iterator_range"*
  call void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE5beginEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp2, %"class.boost::iterator_range"* %8)
  %9 = load %"class.boost::adjacency_list"** %g, align 4
  %10 = bitcast %"class.boost::adjacency_list"* %9 to %"class.boost::vec_adj_list_impl"*
  call void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp5, %"class.boost::vec_adj_list_impl"* %10)
  %11 = bitcast %"class.boost::integer_range"* %tmp5 to %"class.boost::iterator_range"*
  call void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE3endEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp4, %"class.boost::iterator_range"* %11)
  %12 = load %"class.boost::adjacency_list"** %g, align 4
  call void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC1ISM_EES4_S4_S4_RKT_(%"class.boost::detail::adj_list_edge_iterator"* %agg.tmp, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp1, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp2, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp4, %"class.boost::adjacency_list"* %12)
  %13 = load %"class.boost::adjacency_list"** %g, align 4
  %14 = bitcast %"class.boost::adjacency_list"* %13 to %"class.boost::vec_adj_list_impl"*
  invoke void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp8, %"class.boost::vec_adj_list_impl"* %14)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %15 = bitcast %"class.boost::integer_range"* %tmp8 to %"class.boost::iterator_range"*
  invoke void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE5beginEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp7, %"class.boost::iterator_range"* %15)
          to label %invoke.cont9 unwind label %lpad

invoke.cont9:                                     ; preds = %invoke.cont
  %16 = load %"class.boost::adjacency_list"** %g, align 4
  %17 = bitcast %"class.boost::adjacency_list"* %16 to %"class.boost::vec_adj_list_impl"*
  invoke void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp11, %"class.boost::vec_adj_list_impl"* %17)
          to label %invoke.cont12 unwind label %lpad

invoke.cont12:                                    ; preds = %invoke.cont9
  %18 = bitcast %"class.boost::integer_range"* %tmp11 to %"class.boost::iterator_range"*
  invoke void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE3endEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp10, %"class.boost::iterator_range"* %18)
          to label %invoke.cont13 unwind label %lpad

invoke.cont13:                                    ; preds = %invoke.cont12
  %19 = load %"class.boost::adjacency_list"** %g, align 4
  %20 = bitcast %"class.boost::adjacency_list"* %19 to %"class.boost::vec_adj_list_impl"*
  invoke void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp15, %"class.boost::vec_adj_list_impl"* %20)
          to label %invoke.cont16 unwind label %lpad

invoke.cont16:                                    ; preds = %invoke.cont13
  %21 = bitcast %"class.boost::integer_range"* %tmp15 to %"class.boost::iterator_range"*
  invoke void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE3endEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp14, %"class.boost::iterator_range"* %21)
          to label %invoke.cont17 unwind label %lpad

invoke.cont17:                                    ; preds = %invoke.cont16
  %22 = load %"class.boost::adjacency_list"** %g, align 4
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC1ISM_EES4_S4_S4_RKT_(%"class.boost::detail::adj_list_edge_iterator"* %agg.tmp6, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp7, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp10, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp14, %"class.boost::adjacency_list"* %22)
          to label %invoke.cont18 unwind label %lpad

invoke.cont18:                                    ; preds = %invoke.cont17
  invoke void @_ZSt9make_pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_ESt4pairIT_T0_ESQ_SR_(%"struct.std::pair.20"* sret %agg.result, %"class.boost::detail::adj_list_edge_iterator"* %agg.tmp, %"class.boost::detail::adj_list_edge_iterator"* %agg.tmp6)
          to label %invoke.cont20 unwind label %lpad19

invoke.cont20:                                    ; preds = %invoke.cont18
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %agg.tmp6)
          to label %invoke.cont21 unwind label %lpad

invoke.cont21:                                    ; preds = %invoke.cont20
  call void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %agg.tmp)
  ret void

lpad:                                             ; preds = %invoke.cont20, %invoke.cont17, %invoke.cont16, %invoke.cont13, %invoke.cont12, %invoke.cont9, %invoke.cont, %entry
  %23 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %24 = extractvalue { i8*, i32 } %23, 0
  store i8* %24, i8** %exn.slot
  %25 = extractvalue { i8*, i32 } %23, 1
  store i32 %25, i32* %ehselector.slot
  br label %ehcleanup

lpad19:                                           ; preds = %invoke.cont18
  %26 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %27 = extractvalue { i8*, i32 } %26, 0
  store i8* %27, i8** %exn.slot
  %28 = extractvalue { i8*, i32 } %26, 1
  store i32 %28, i32* %ehselector.slot
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %agg.tmp6)
          to label %invoke.cont22 unwind label %terminate.lpad

invoke.cont22:                                    ; preds = %lpad19
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont22, %lpad
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %agg.tmp)
          to label %invoke.cont23 unwind label %terminate.lpad

invoke.cont23:                                    ; preds = %ehcleanup
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont23
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val24 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val24

terminate.lpad:                                   ; preds = %ehcleanup, %lpad19
  %29 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_ED1Ev(%"struct.std::pair.20"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.20"*, align 4
  store %"struct.std::pair.20"* %this, %"struct.std::pair.20"** %this.addr, align 4
  %this1 = load %"struct.std::pair.20"** %this.addr
  call void @_ZNSt4pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_ED2Ev(%"struct.std::pair.20"* %this1)
  ret void
}

declare void @_ZSt9terminatev()

define linkonce_odr zeroext i1 @_ZNK5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEneERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"* %x) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %x.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %x, %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %vCurr = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr to %"class.boost::iterator_facade"*
  %1 = load %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %vCurr2 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %1, i32 0, i32 1
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr2 to %"class.boost::iterator_facade"*
  %call = call zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %0, %"class.boost::iterator_facade"* %2)
  br i1 %call, label %lor.end, label %lor.rhs

lor.rhs:                                          ; preds = %entry
  %vCurr3 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr3 to %"class.boost::iterator_facade"*
  %vEnd = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  %4 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd to %"class.boost::iterator_facade"*
  %call4 = call zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %3, %"class.boost::iterator_facade"* %4)
  br i1 %call4, label %land.rhs, label %land.end

land.rhs:                                         ; preds = %lor.rhs
  %edges = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  %call5 = call %"struct.std::pair.26"* @_ZNK5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv(%"class.boost::optional"* %edges)
  %first = getelementptr inbounds %"struct.std::pair.26"* %call5, i32 0, i32 0
  %5 = bitcast %"struct.boost::detail::out_edge_iter"* %first to %"class.boost::iterator_facade.27"*
  %6 = load %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %edges6 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %6, i32 0, i32 3
  %call7 = call %"struct.std::pair.26"* @_ZNK5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv(%"class.boost::optional"* %edges6)
  %first8 = getelementptr inbounds %"struct.std::pair.26"* %call7, i32 0, i32 0
  %7 = bitcast %"struct.boost::detail::out_edge_iter"* %first8 to %"class.boost::iterator_facade.27"*
  %call9 = call zeroext i1 @_ZN5boostneINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iSE_SD_SF_SD_iEENS1_23enable_if_interoperableIT_T4_NS_3mpl6apply2INS1_12always_bool2ESH_SI_E4typeEE4typeERKNS_15iterator_facadeISH_T0_T1_T2_T3_EERKNSQ_ISI_T5_T6_T7_T8_EE(%"class.boost::iterator_facade.27"* %5, %"class.boost::iterator_facade.27"* %7)
  br label %land.end

land.end:                                         ; preds = %land.rhs, %lor.rhs
  %8 = phi i1 [ false, %lor.rhs ], [ %call9, %land.rhs ]
  br label %lor.end

lor.end:                                          ; preds = %land.end, %entry
  %9 = phi i1 [ true, %entry ], [ %8, %land.end ]
  ret i1 %9
}

define linkonce_odr void @_ZNK5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEdeEv(%"class.boost::detail::edge_desc_impl"* noalias sret %agg.result, %"class.boost::detail::adj_list_edge_iterator"* %this) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %edges = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  %call = call %"struct.std::pair.26"* @_ZNK5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv(%"class.boost::optional"* %edges)
  %first = getelementptr inbounds %"struct.std::pair.26"* %call, i32 0, i32 0
  %0 = bitcast %"struct.boost::detail::out_edge_iter"* %first to %"class.boost::iterator_facade.27"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.result, %"class.boost::iterator_facade.27"* %0)
  ret void
}

define linkonce_odr i32 @_ZN5boost6sourceINS_12directed_tagEjNS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EET0_RKNS_6detail9edge_baseIT_S9_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %e, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %e.addr = alloca %"struct.boost::detail::edge_base"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::detail::edge_base"* %e, %"struct.boost::detail::edge_base"** %e.addr, align 4
  store %"class.boost::adjacency_list"* %0, %"class.boost::adjacency_list"** %.addr, align 4
  %1 = load %"struct.boost::detail::edge_base"** %e.addr, align 4
  %m_source = getelementptr inbounds %"struct.boost::detail::edge_base"* %1, i32 0, i32 0
  %2 = load i32* %m_source, align 4
  ret i32 %2
}

define linkonce_odr i32 @_ZN5boost6targetINS_12directed_tagEjNS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EET0_RKNS_6detail9edge_baseIT_S9_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %e, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %e.addr = alloca %"struct.boost::detail::edge_base"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::detail::edge_base"* %e, %"struct.boost::detail::edge_base"** %e.addr, align 4
  store %"class.boost::adjacency_list"* %0, %"class.boost::adjacency_list"** %.addr, align 4
  %1 = load %"struct.boost::detail::edge_base"** %e.addr, align 4
  %m_target = getelementptr inbounds %"struct.boost::detail::edge_base"* %1, i32 0, i32 1
  %2 = load i32* %m_target, align 4
  ret i32 %2
}

define linkonce_odr i32* @_ZN5boost3getINS_26adj_list_edge_property_mapINS_12directed_tagEiRijNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES5_EES3_NS_6detail14edge_desc_implIS2_jEEEET0_RKNS_14put_get_helperISC_T_EERKT1_(%"struct.boost::put_get_helper"* %pa, %"class.boost::detail::edge_desc_impl"* %k) inlinehint {
entry:
  %pa.addr = alloca %"struct.boost::put_get_helper"*, align 4
  %k.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %v = alloca i32*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  store %"struct.boost::put_get_helper"* %pa, %"struct.boost::put_get_helper"** %pa.addr, align 4
  store %"class.boost::detail::edge_desc_impl"* %k, %"class.boost::detail::edge_desc_impl"** %k.addr, align 4
  %0 = load %"struct.boost::put_get_helper"** %pa.addr, align 4
  %1 = bitcast %"struct.boost::put_get_helper"* %0 to %"struct.boost::adj_list_edge_property_map"*
  %2 = load %"class.boost::detail::edge_desc_impl"** %k.addr, align 4
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %4 = bitcast %"class.boost::detail::edge_desc_impl"* %2 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 12, i32 4, i1 false)
  %call = call i32* @_ZNK5boost26adj_list_edge_property_mapINS_12directed_tagEiRijNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES4_EixENS_6detail14edge_desc_implIS1_jEE(%"struct.boost::adj_list_edge_property_map"* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp)
  store i32* %call, i32** %v, align 4
  %5 = load i32** %v, align 4
  ret i32* %5
}

define linkonce_odr %"class.boost::detail::adj_list_edge_iterator"* @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEppEv(%"class.boost::detail::adj_list_edge_iterator"* %this) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %ref.tmp = alloca %"struct.std::pair.26", align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %edges = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  %call = call %"struct.std::pair.26"* @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv(%"class.boost::optional"* %edges)
  %first = getelementptr inbounds %"struct.std::pair.26"* %call, i32 0, i32 0
  %0 = bitcast %"struct.boost::detail::out_edge_iter"* %first to %"class.boost::iterator_facade.27"*
  %call2 = call %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEppEv(%"class.boost::iterator_facade.27"* %0)
  %edges3 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  %call4 = call %"struct.std::pair.26"* @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv(%"class.boost::optional"* %edges3)
  %first5 = getelementptr inbounds %"struct.std::pair.26"* %call4, i32 0, i32 0
  %1 = bitcast %"struct.boost::detail::out_edge_iter"* %first5 to %"class.boost::iterator_facade.27"*
  %edges6 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  %call7 = call %"struct.std::pair.26"* @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv(%"class.boost::optional"* %edges6)
  %second = getelementptr inbounds %"struct.std::pair.26"* %call7, i32 0, i32 1
  %2 = bitcast %"struct.boost::detail::out_edge_iter"* %second to %"class.boost::iterator_facade.27"*
  %call8 = call zeroext i1 @_ZN5boosteqINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iSE_SD_SF_SD_iEENS1_23enable_if_interoperableIT_T4_NS_3mpl6apply2INS1_12always_bool2ESH_SI_E4typeEE4typeERKNS_15iterator_facadeISH_T0_T1_T2_T3_EERKNSQ_ISI_T5_T6_T7_T8_EE(%"class.boost::iterator_facade.27"* %1, %"class.boost::iterator_facade.27"* %2)
  br i1 %call8, label %if.then, label %if.end26

if.then:                                          ; preds = %entry
  %vCurr = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr to %"class.boost::iterator_facade"*
  %call9 = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %3)
  br label %while.cond

while.cond:                                       ; preds = %while.body, %if.then
  %vCurr10 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %4 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr10 to %"class.boost::iterator_facade"*
  %vEnd = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  %5 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd to %"class.boost::iterator_facade"*
  %call11 = call zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %4, %"class.boost::iterator_facade"* %5)
  br i1 %call11, label %land.rhs, label %land.end

land.rhs:                                         ; preds = %while.cond
  %vCurr12 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %6 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr12 to %"class.boost::iterator_facade"*
  %call13 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %6)
  %m_g = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 4
  %7 = load %"class.boost::adjacency_list"** %m_g, align 4
  %8 = bitcast %"class.boost::adjacency_list"* %7 to %"struct.boost::adj_list_helper"*
  %call14 = call i32 @_ZN5boost10out_degreeINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_16degree_size_typeENSG_17vertex_descriptorERKNS_15adj_list_helperISG_T0_EE(i32 %call13, %"struct.boost::adj_list_helper"* %8)
  %cmp = icmp eq i32 %call14, 0
  br label %land.end

land.end:                                         ; preds = %land.rhs, %while.cond
  %9 = phi i1 [ false, %while.cond ], [ %cmp, %land.rhs ]
  br i1 %9, label %while.body, label %while.end

while.body:                                       ; preds = %land.end
  %vCurr15 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %10 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr15 to %"class.boost::iterator_facade"*
  %call16 = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %10)
  br label %while.cond

while.end:                                        ; preds = %land.end
  %vCurr17 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %11 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr17 to %"class.boost::iterator_facade"*
  %vEnd18 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  %12 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd18 to %"class.boost::iterator_facade"*
  %call19 = call zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %11, %"class.boost::iterator_facade"* %12)
  br i1 %call19, label %if.then20, label %if.end

if.then20:                                        ; preds = %while.end
  %edges21 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  %vCurr22 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %13 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr22 to %"class.boost::iterator_facade"*
  %call23 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %13)
  %m_g24 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 4
  %14 = load %"class.boost::adjacency_list"** %m_g24, align 4
  %15 = bitcast %"class.boost::adjacency_list"* %14 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost9out_edgesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEESt4pairINT_17out_edge_iteratorESI_ENSH_17vertex_descriptorERKNS_15adj_list_helperISH_T0_EE(%"struct.std::pair.26"* sret %ref.tmp, i32 %call23, %"struct.boost::adj_list_helper"* %15)
  %call25 = call %"class.boost::optional"* @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEaSERKSG_(%"class.boost::optional"* %edges21, %"struct.std::pair.26"* %ref.tmp)
  br label %if.end

if.end:                                           ; preds = %if.then20, %while.end
  br label %if.end26

if.end26:                                         ; preds = %if.end, %entry
  ret %"class.boost::detail::adj_list_edge_iterator"* %this1
}

define linkonce_odr void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  call void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED2Ev(%"class.boost::detail::adj_list_edge_iterator"* %this1)
  ret void
}

declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(%"class.std::basic_ofstream"*)

define linkonce_odr void @_ZNSt6vectorIiSaIiEED1Ev(%"class.std::vector.8"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.8"*, align 4
  store %"class.std::vector.8"* %this, %"class.std::vector.8"** %this.addr, align 4
  %this1 = load %"class.std::vector.8"** %this.addr
  call void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.8"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  call void @_ZNSt6vectorIjSaIjEED2Ev(%"class.std::vector.3"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS4_EES4_S1_ED1Ev(%"class.boost::adjacency_list"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"class.boost::adjacency_list"* %this, %"class.boost::adjacency_list"** %this.addr, align 4
  %this1 = load %"class.boost::adjacency_list"** %this.addr
  call void @_ZN5boost14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS4_EES4_S1_ED2Ev(%"class.boost::adjacency_list"* %this1)
  ret void
}

define linkonce_odr i32* @_ZNK5boost26adj_list_edge_property_mapINS_12directed_tagEiRijNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES4_EixENS_6detail14edge_desc_implIS1_jEE(%"struct.boost::adj_list_edge_property_map"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e) inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::adj_list_edge_property_map"*, align 4
  %p = alloca %"struct.boost::property"*, align 4
  store %"struct.boost::adj_list_edge_property_map"* %this, %"struct.boost::adj_list_edge_property_map"** %this.addr, align 4
  %this1 = load %"struct.boost::adj_list_edge_property_map"** %this.addr
  %call = call i8* @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjE12get_propertyEv(%"class.boost::detail::edge_desc_impl"* %e)
  %0 = bitcast i8* %call to %"struct.boost::property"*
  store %"struct.boost::property"* %0, %"struct.boost::property"** %p, align 4
  %1 = load %"struct.boost::property"** %p, align 4
  %tag = getelementptr inbounds %"struct.boost::adj_list_edge_property_map"* %this1, i32 0, i32 0
  %2 = load i32* %tag, align 4
  %call2 = call i32* @_ZN5boost18get_property_valueINS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES2_EERNS_19lookup_one_propertyIT_T0_E4typeERS6_S7_(%"struct.boost::property"* %1, i32 %2)
  ret i32* %call2
}

define linkonce_odr i8* @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjE12get_propertyEv(%"class.boost::detail::edge_desc_impl"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  store %"class.boost::detail::edge_desc_impl"* %this, %"class.boost::detail::edge_desc_impl"** %this.addr, align 4
  %this1 = load %"class.boost::detail::edge_desc_impl"** %this.addr
  %m_eproperty = getelementptr inbounds %"class.boost::detail::edge_desc_impl"* %this1, i32 0, i32 1
  %0 = load i8** %m_eproperty, align 4
  ret i8* %0
}

define linkonce_odr i32* @_ZN5boost18get_property_valueINS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES2_EERNS_19lookup_one_propertyIT_T0_E4typeERS6_S7_(%"struct.boost::property"* %p, i32 %tag) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::property"*, align 4
  %tag.addr = alloca i32, align 4
  store %"struct.boost::property"* %p, %"struct.boost::property"** %p.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %0 = load %"struct.boost::property"** %p.addr, align 4
  %call = call i32* @_ZN5boost28lookup_one_property_internalINS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES2_vE6lookupIS4_EENS_9enable_ifINS_7is_sameIS4_T_EERiE4typeERS9_RKS2_(%"struct.boost::property"* %0, i32* %tag.addr)
  ret i32* %call
}

define linkonce_odr i32* @_ZN5boost28lookup_one_property_internalINS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES2_vE6lookupIS4_EENS_9enable_ifINS_7is_sameIS4_T_EERiE4typeERS9_RKS2_(%"struct.boost::property"* %prop, i32*) nounwind align 2 {
entry:
  %prop.addr = alloca %"struct.boost::property"*, align 4
  %.addr = alloca i32*, align 4
  store %"struct.boost::property"* %prop, %"struct.boost::property"** %prop.addr, align 4
  store i32* %0, i32** %.addr, align 4
  %1 = load %"struct.boost::property"** %prop.addr, align 4
  %m_value = getelementptr inbounds %"struct.boost::property"* %1, i32 0, i32 0
  ret i32* %m_value
}

define linkonce_odr %"struct.std::pair.26"* @_ZNK5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv(%"class.boost::optional"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  %0 = bitcast %"class.boost::optional"* %this1 to %"class.boost::optional_detail::optional_base"*
  %call = call zeroext i1 @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE14is_initializedEv(%"class.boost::optional_detail::optional_base"* %0)
  br i1 %call, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  br label %cond.end

cond.false:                                       ; preds = %entry
  call void @__assert_fail(i8* getelementptr inbounds ([23 x i8]* @.str20, i32 0, i32 0), i8* getelementptr inbounds ([54 x i8]* @.str21, i32 0, i32 0), i32 640, i8* getelementptr inbounds ([1097 x i8]* @__PRETTY_FUNCTION__._ZNK5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end

cond.end:                                         ; preds = %1, %cond.true
  %2 = bitcast %"class.boost::optional"* %this1 to %"class.boost::optional_detail::optional_base"*
  %call2 = call %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12get_ptr_implEv(%"class.boost::optional_detail::optional_base"* %2)
  ret %"struct.std::pair.26"* %call2
}

define linkonce_odr void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEdeEv(%"class.boost::detail::edge_desc_impl"* noalias sret %agg.result, %"class.boost::iterator_facade.27"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade.27"*, align 4
  store %"class.boost::iterator_facade.27"* %this, %"class.boost::iterator_facade.27"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade.27"** %this.addr
  %call = call %"struct.boost::detail::out_edge_iter"* @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iE7derivedEv(%"class.boost::iterator_facade.27"* %this1)
  call void @_ZN5boost20iterator_core_access11dereferenceINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEEEENT_9referenceERKSG_(%"class.boost::detail::edge_desc_impl"* sret %agg.result, %"struct.boost::detail::out_edge_iter"* %call)
  ret void
}

define linkonce_odr void @_ZN5boost20iterator_core_access11dereferenceINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEEEENT_9referenceERKSG_(%"class.boost::detail::edge_desc_impl"* noalias sret %agg.result, %"struct.boost::detail::out_edge_iter"* %f) align 2 {
entry:
  %f.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %f, %"struct.boost::detail::out_edge_iter"** %f.addr, align 4
  %0 = load %"struct.boost::detail::out_edge_iter"** %f.addr, align 4
  call void @_ZNK5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiE11dereferenceEv(%"class.boost::detail::edge_desc_impl"* sret %agg.result, %"struct.boost::detail::out_edge_iter"* %0)
  ret void
}

define linkonce_odr %"struct.boost::detail::out_edge_iter"* @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iE7derivedEv(%"class.boost::iterator_facade.27"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade.27"*, align 4
  store %"class.boost::iterator_facade.27"* %this, %"class.boost::iterator_facade.27"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade.27"** %this.addr
  %0 = bitcast %"class.boost::iterator_facade.27"* %this1 to %"struct.boost::detail::out_edge_iter"*
  ret %"struct.boost::detail::out_edge_iter"* %0
}

define linkonce_odr void @_ZNK5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiE11dereferenceEv(%"class.boost::detail::edge_desc_impl"* noalias sret %agg.result, %"struct.boost::detail::out_edge_iter"* %this) inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  %m_src = getelementptr inbounds %"struct.boost::detail::out_edge_iter"* %this1, i32 0, i32 1
  %0 = load i32* %m_src, align 4
  %1 = bitcast %"struct.boost::detail::out_edge_iter"* %this1 to %"class.boost::iterator_adaptor"*
  %call = call %"struct.std::_List_iterator"* @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iE4baseEv(%"class.boost::iterator_adaptor"* %1)
  %call2 = call %"class.boost::detail::stored_edge_property"* @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEdeEv(%"struct.std::_List_iterator"* %call)
  %2 = bitcast %"class.boost::detail::stored_edge_property"* %call2 to %"class.boost::detail::stored_edge"*
  %call3 = call i32* @_ZNK5boost6detail11stored_edgeIjE10get_targetEv(%"class.boost::detail::stored_edge"* %2)
  %3 = load i32* %call3
  %4 = bitcast %"struct.boost::detail::out_edge_iter"* %this1 to %"class.boost::iterator_adaptor"*
  %call4 = call %"struct.std::_List_iterator"* @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iE4baseEv(%"class.boost::iterator_adaptor"* %4)
  %call5 = call %"class.boost::detail::stored_edge_property"* @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEdeEv(%"struct.std::_List_iterator"* %call4)
  %call6 = call %"struct.boost::property"* @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEE12get_propertyEv(%"class.boost::detail::stored_edge_property"* %call5)
  %5 = bitcast %"struct.boost::property"* %call6 to i8*
  call void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC1EjjPKv(%"class.boost::detail::edge_desc_impl"* %agg.result, i32 %0, i32 %3, i8* %5)
  ret void
}

define linkonce_odr void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC1EjjPKv(%"class.boost::detail::edge_desc_impl"* %this, i32 %s, i32 %d, i8* %eplug) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %s.addr = alloca i32, align 4
  %d.addr = alloca i32, align 4
  %eplug.addr = alloca i8*, align 4
  store %"class.boost::detail::edge_desc_impl"* %this, %"class.boost::detail::edge_desc_impl"** %this.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32 %d, i32* %d.addr, align 4
  store i8* %eplug, i8** %eplug.addr, align 4
  %this1 = load %"class.boost::detail::edge_desc_impl"** %this.addr
  %0 = load i32* %s.addr, align 4
  %1 = load i32* %d.addr, align 4
  %2 = load i8** %eplug.addr, align 4
  call void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC2EjjPKv(%"class.boost::detail::edge_desc_impl"* %this1, i32 %0, i32 %1, i8* %2)
  ret void
}

define linkonce_odr %"struct.std::_List_iterator"* @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iE4baseEv(%"class.boost::iterator_adaptor"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  ret %"struct.std::_List_iterator"* %m_iterator
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEdeEv(%"struct.std::_List_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_iterator"*, align 4
  store %"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_List_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %1 = bitcast %"struct.std::__detail::_List_node_base"* %0 to %"struct.std::_List_node"*
  %_M_data = getelementptr inbounds %"struct.std::_List_node"* %1, i32 0, i32 1
  ret %"class.boost::detail::stored_edge_property"* %_M_data
}

define linkonce_odr i32* @_ZNK5boost6detail11stored_edgeIjE10get_targetEv(%"class.boost::detail::stored_edge"* %this) nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge"*, align 4
  store %"class.boost::detail::stored_edge"* %this, %"class.boost::detail::stored_edge"** %this.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge"** %this.addr
  %m_target = getelementptr inbounds %"class.boost::detail::stored_edge"* %this1, i32 0, i32 0
  ret i32* %m_target
}

define linkonce_odr %"struct.boost::property"* @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEE12get_propertyEv(%"class.boost::detail::stored_edge_property"* %this) nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  %call = call %"struct.boost::property"* @_ZNKSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEdeEv(%"class.std::auto_ptr"* %m_property) nounwind
  ret %"struct.boost::property"* %call
}

define linkonce_odr %"struct.boost::property"* @_ZNKSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEdeEv(%"class.std::auto_ptr"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::property"** %_M_ptr, align 4
  ret %"struct.boost::property"* %0
}

define linkonce_odr void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC2EjjPKv(%"class.boost::detail::edge_desc_impl"* %this, i32 %s, i32 %d, i8* %eplug) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %s.addr = alloca i32, align 4
  %d.addr = alloca i32, align 4
  %eplug.addr = alloca i8*, align 4
  store %"class.boost::detail::edge_desc_impl"* %this, %"class.boost::detail::edge_desc_impl"** %this.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32 %d, i32* %d.addr, align 4
  store i8* %eplug, i8** %eplug.addr, align 4
  %this1 = load %"class.boost::detail::edge_desc_impl"** %this.addr
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %this1 to %"struct.boost::detail::edge_base"*
  %1 = load i32* %s.addr, align 4
  %2 = load i32* %d.addr, align 4
  call void @_ZN5boost6detail9edge_baseINS_12directed_tagEjEC2Ejj(%"struct.boost::detail::edge_base"* %0, i32 %1, i32 %2)
  %m_eproperty = getelementptr inbounds %"class.boost::detail::edge_desc_impl"* %this1, i32 0, i32 1
  %3 = load i8** %eplug.addr, align 4
  store i8* %3, i8** %m_eproperty, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail9edge_baseINS_12directed_tagEjEC2Ejj(%"struct.boost::detail::edge_base"* %this, i32 %s, i32 %d) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::edge_base"*, align 4
  %s.addr = alloca i32, align 4
  %d.addr = alloca i32, align 4
  store %"struct.boost::detail::edge_base"* %this, %"struct.boost::detail::edge_base"** %this.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32 %d, i32* %d.addr, align 4
  %this1 = load %"struct.boost::detail::edge_base"** %this.addr
  %m_source = getelementptr inbounds %"struct.boost::detail::edge_base"* %this1, i32 0, i32 0
  %0 = load i32* %s.addr, align 4
  store i32 %0, i32* %m_source, align 4
  %m_target = getelementptr inbounds %"struct.boost::detail::edge_base"* %this1, i32 0, i32 1
  %1 = load i32* %d.addr, align 4
  store i32 %1, i32* %m_target, align 4
  ret void
}

define linkonce_odr zeroext i1 @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE14is_initializedEv(%"class.boost::optional_detail::optional_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %m_initialized = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 0
  %0 = load i8* %m_initialized, align 1
  %tobool = trunc i8 %0 to i1
  ret i1 %tobool
}

declare void @__assert_fail(i8*, i8*, i32, i8*) noreturn nounwind

define linkonce_odr %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12get_ptr_implEv(%"class.boost::optional_detail::optional_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %call = call %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE10get_objectEv(%"class.boost::optional_detail::optional_base"* %this1)
  %0 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  %call2 = call %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8cast_ptrEPKSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this1, %"struct.std::pair.26"* %call)
  ret %"struct.std::pair.26"* %call2
}

define linkonce_odr %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8cast_ptrEPKSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this, %"struct.std::pair.26"* %p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %p.addr = alloca %"struct.std::pair.26"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  store %"struct.std::pair.26"* %p, %"struct.std::pair.26"** %p.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %1 = load %"struct.std::pair.26"** %p.addr, align 4
  ret %"struct.std::pair.26"* %1
}

define linkonce_odr %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE10get_objectEv(%"class.boost::optional_detail::optional_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %caster = alloca %union.anon.28, align 4
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %ap_pvoid = bitcast %union.anon.28* %caster to i8**
  %m_storage = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 2
  %call = call i8* @_ZNK5boost15optional_detail15aligned_storageISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE7addressEv(%"class.boost::optional_detail::aligned_storage"* %m_storage)
  store i8* %call, i8** %ap_pvoid, align 4
  %as_ptype = bitcast %union.anon.28* %caster to %"struct.std::pair.26"**
  %0 = load %"struct.std::pair.26"** %as_ptype, align 4
  ret %"struct.std::pair.26"* %0
}

define linkonce_odr i8* @_ZNK5boost15optional_detail15aligned_storageISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE7addressEv(%"class.boost::optional_detail::aligned_storage"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::aligned_storage"*, align 4
  store %"class.boost::optional_detail::aligned_storage"* %this, %"class.boost::optional_detail::aligned_storage"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::aligned_storage"** %this.addr
  %dummy_ = getelementptr inbounds %"class.boost::optional_detail::aligned_storage"* %this1, i32 0, i32 0
  %0 = bitcast %"union.boost::optional_detail::aligned_storage<std::pair<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >::dummy_u"* %dummy_ to i8*
  ret i8* %0
}

define linkonce_odr %"struct.std::pair.26"* @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv(%"class.boost::optional"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  %0 = bitcast %"class.boost::optional"* %this1 to %"class.boost::optional_detail::optional_base"*
  %call = call zeroext i1 @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE14is_initializedEv(%"class.boost::optional_detail::optional_base"* %0)
  br i1 %call, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  br label %cond.end

cond.false:                                       ; preds = %entry
  call void @__assert_fail(i8* getelementptr inbounds ([23 x i8]* @.str20, i32 0, i32 0), i8* getelementptr inbounds ([54 x i8]* @.str21, i32 0, i32 0), i32 641, i8* getelementptr inbounds ([1085 x i8]* @__PRETTY_FUNCTION__._ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEptEv, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end

cond.end:                                         ; preds = %1, %cond.true
  %2 = bitcast %"class.boost::optional"* %this1 to %"class.boost::optional_detail::optional_base"*
  %call2 = call %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12get_ptr_implEv(%"class.boost::optional_detail::optional_base"* %2)
  ret %"struct.std::pair.26"* %call2
}

define linkonce_odr %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEppEv(%"class.boost::iterator_facade.27"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade.27"*, align 4
  store %"class.boost::iterator_facade.27"* %this, %"class.boost::iterator_facade.27"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade.27"** %this.addr
  %call = call %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iE7derivedEv(%"class.boost::iterator_facade.27"* %this1)
  call void @_ZN5boost20iterator_core_access9incrementINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEEEEvRT_(%"struct.boost::detail::out_edge_iter"* %call)
  %call2 = call %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iE7derivedEv(%"class.boost::iterator_facade.27"* %this1)
  ret %"struct.boost::detail::out_edge_iter"* %call2
}

define linkonce_odr zeroext i1 @_ZN5boosteqINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iSE_SD_SF_SD_iEENS1_23enable_if_interoperableIT_T4_NS_3mpl6apply2INS1_12always_bool2ESH_SI_E4typeEE4typeERKNS_15iterator_facadeISH_T0_T1_T2_T3_EERKNSQ_ISI_T5_T6_T7_T8_EE(%"class.boost::iterator_facade.27"* %lhs, %"class.boost::iterator_facade.27"* %rhs) inlinehint {
entry:
  %lhs.addr = alloca %"class.boost::iterator_facade.27"*, align 4
  %rhs.addr = alloca %"class.boost::iterator_facade.27"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_.30", align 1
  %ref.tmp = alloca %"struct.boost::is_convertible", align 1
  store %"class.boost::iterator_facade.27"* %lhs, %"class.boost::iterator_facade.27"** %lhs.addr, align 4
  store %"class.boost::iterator_facade.27"* %rhs, %"class.boost::iterator_facade.27"** %rhs.addr, align 4
  %0 = load %"class.boost::iterator_facade.27"** %lhs.addr, align 4
  %1 = bitcast %"class.boost::iterator_facade.27"* %0 to %"struct.boost::detail::out_edge_iter"*
  %2 = load %"class.boost::iterator_facade.27"** %rhs.addr, align 4
  %3 = bitcast %"class.boost::iterator_facade.27"* %2 to %"struct.boost::detail::out_edge_iter"*
  %4 = bitcast %"struct.boost::is_convertible"* %ref.tmp to %"struct.mpl_::bool_.30"*
  %call = call zeroext i1 @_ZN5boost20iterator_core_access5equalINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"struct.boost::detail::out_edge_iter"* %1, %"struct.boost::detail::out_edge_iter"* %3)
  ret i1 %call
}

define linkonce_odr i32 @_ZN5boost10out_degreeINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_16degree_size_typeENSG_17vertex_descriptorERKNS_15adj_list_helperISG_T0_EE(i32 %u, %"struct.boost::adj_list_helper"* %g_) inlinehint {
entry:
  %u.addr = alloca i32, align 4
  %g_.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"struct.boost::adj_list_helper"* %g_, %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::adj_list_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %g, align 4
  %2 = load %"class.boost::adjacency_list"** %g, align 4
  %3 = bitcast %"class.boost::adjacency_list"* %2 to %"class.boost::vec_adj_list_impl"*
  %4 = load i32* %u.addr, align 4
  %call = call %"class.std::list.21"* @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %3, i32 %4)
  %call1 = call i32 @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE4sizeEv(%"class.std::list.21"* %call)
  ret i32 %call1
}

define linkonce_odr %"class.boost::optional"* @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEaSERKSG_(%"class.boost::optional"* %this, %"struct.std::pair.26"* %val) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  %val.addr = alloca %"struct.std::pair.26"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  store %"struct.std::pair.26"* %val, %"struct.std::pair.26"** %val.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  %0 = bitcast %"class.boost::optional"* %this1 to %"class.boost::optional_detail::optional_base"*
  %1 = load %"struct.std::pair.26"** %val.addr, align 4
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE6assignERKSH_(%"class.boost::optional_detail::optional_base"* %0, %"struct.std::pair.26"* %1)
  ret %"class.boost::optional"* %this1
}

define linkonce_odr void @_ZN5boost9out_edgesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEESt4pairINT_17out_edge_iteratorESI_ENSH_17vertex_descriptorERKNS_15adj_list_helperISH_T0_EE(%"struct.std::pair.26"* noalias sret %agg.result, i32 %u, %"struct.boost::adj_list_helper"* %g_) inlinehint {
entry:
  %u.addr = alloca i32, align 4
  %g_.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %cg = alloca %"class.boost::adjacency_list"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::detail::out_edge_iter", align 4
  %ref.tmp = alloca %"struct.std::_List_iterator", align 4
  %agg.tmp1 = alloca %"struct.boost::detail::out_edge_iter", align 4
  %ref.tmp2 = alloca %"struct.std::_List_iterator", align 4
  store i32 %u, i32* %u.addr, align 4
  store %"struct.boost::adj_list_helper"* %g_, %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::adj_list_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %cg, align 4
  %2 = load %"class.boost::adjacency_list"** %cg, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %g, align 4
  %3 = load %"class.boost::adjacency_list"** %g, align 4
  %4 = bitcast %"class.boost::adjacency_list"* %3 to %"class.boost::vec_adj_list_impl"*
  %5 = load i32* %u.addr, align 4
  %call = call %"class.std::list.21"* @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %4, i32 %5)
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5beginEv(%"struct.std::_List_iterator"* sret %ref.tmp, %"class.std::list.21"* %call)
  call void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1ERKS9_RKj(%"struct.boost::detail::out_edge_iter"* %agg.tmp, %"struct.std::_List_iterator"* %ref.tmp, i32* %u.addr)
  %6 = load %"class.boost::adjacency_list"** %g, align 4
  %7 = bitcast %"class.boost::adjacency_list"* %6 to %"class.boost::vec_adj_list_impl"*
  %8 = load i32* %u.addr, align 4
  %call3 = call %"class.std::list.21"* @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %7, i32 %8)
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_iterator"* sret %ref.tmp2, %"class.std::list.21"* %call3)
  call void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1ERKS9_RKj(%"struct.boost::detail::out_edge_iter"* %agg.tmp1, %"struct.std::_List_iterator"* %ref.tmp2, i32* %u.addr)
  call void @_ZSt9make_pairIN5boost6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESE_ESt4pairIT_T0_ESG_SH_(%"struct.std::pair.26"* sret %agg.result, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp1)
  ret void
}

define linkonce_odr void @_ZSt9make_pairIN5boost6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESE_ESt4pairIT_T0_ESG_SH_(%"struct.std::pair.26"* noalias sret %agg.result, %"struct.boost::detail::out_edge_iter"* byval align 4 %__x, %"struct.boost::detail::out_edge_iter"* byval align 4 %__y) inlinehint {
entry:
  call void @_ZNSt4pairIN5boost6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESE_EC1ERKSE_SH_(%"struct.std::pair.26"* %agg.result, %"struct.boost::detail::out_edge_iter"* %__x, %"struct.boost::detail::out_edge_iter"* %__y)
  ret void
}

define linkonce_odr void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1ERKS9_RKj(%"struct.boost::detail::out_edge_iter"* %this, %"struct.std::_List_iterator"* %i, i32* %src) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %i.addr = alloca %"struct.std::_List_iterator"*, align 4
  %src.addr = alloca i32*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %i, %"struct.std::_List_iterator"** %i.addr, align 4
  store i32* %src, i32** %src.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  %0 = load i32** %src.addr
  %1 = load %"struct.std::_List_iterator"** %i.addr
  call void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC2ERKS9_RKj(%"struct.boost::detail::out_edge_iter"* %this1, %"struct.std::_List_iterator"* %1, i32* %0)
  ret void
}

define linkonce_odr %"class.std::list.21"* @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %this, i32 %v) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %v.addr = alloca i32, align 4
  store %"class.boost::vec_adj_list_impl"* %this, %"class.boost::vec_adj_list_impl"** %this.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  %this1 = load %"class.boost::vec_adj_list_impl"** %this.addr
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 1
  %0 = load i32* %v.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEixEj(%"class.std::vector"* %m_vertices, i32 %0)
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, i32 0, i32 0
  ret %"class.std::list.21"* %m_out_edges
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5beginEv(%"struct.std::_List_iterator"* noalias sret %agg.result, %"class.std::list.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %0, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, i32 0, i32 0
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node, i32 0, i32 0
  %1 = load %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  call void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1EPNSt8__detail15_List_node_baseE(%"struct.std::_List_iterator"* %agg.result, %"struct.std::__detail::_List_node_base"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_iterator"* noalias sret %agg.result, %"class.std::list.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %0, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, i32 0, i32 0
  call void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1EPNSt8__detail15_List_node_baseE(%"struct.std::_List_iterator"* %agg.result, %"struct.std::__detail::_List_node_base"* %_M_node)
  ret void
}

define linkonce_odr void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1EPNSt8__detail15_List_node_baseE(%"struct.std::_List_iterator"* %this, %"struct.std::__detail::_List_node_base"* %__x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_iterator"*, align 4
  %__x.addr = alloca %"struct.std::__detail::_List_node_base"*, align 4
  store %"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"** %this.addr, align 4
  store %"struct.std::__detail::_List_node_base"* %__x, %"struct.std::__detail::_List_node_base"** %__x.addr, align 4
  %this1 = load %"struct.std::_List_iterator"** %this.addr
  %0 = load %"struct.std::__detail::_List_node_base"** %__x.addr, align 4
  call void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC2EPNSt8__detail15_List_node_baseE(%"struct.std::_List_iterator"* %this1, %"struct.std::__detail::_List_node_base"* %0)
  ret void
}

define linkonce_odr void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC2EPNSt8__detail15_List_node_baseE(%"struct.std::_List_iterator"* %this, %"struct.std::__detail::_List_node_base"* %__x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_iterator"*, align 4
  %__x.addr = alloca %"struct.std::__detail::_List_node_base"*, align 4
  store %"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"** %this.addr, align 4
  store %"struct.std::__detail::_List_node_base"* %__x, %"struct.std::__detail::_List_node_base"** %__x.addr, align 4
  %this1 = load %"struct.std::_List_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %__x.addr, align 4
  store %"struct.std::__detail::_List_node_base"* %0, %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  ret void
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEixEj(%"class.std::vector"* %this, i32 %__n) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, i32 %2
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr
}

define linkonce_odr void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC2ERKS9_RKj(%"struct.boost::detail::out_edge_iter"* %this, %"struct.std::_List_iterator"* %i, i32* %src) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %i.addr = alloca %"struct.std::_List_iterator"*, align 4
  %src.addr = alloca i32*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %i, %"struct.std::_List_iterator"** %i.addr, align 4
  store i32* %src, i32** %src.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  %0 = bitcast %"struct.boost::detail::out_edge_iter"* %this1 to %"class.boost::iterator_adaptor"*
  %1 = load %"struct.std::_List_iterator"** %i.addr, align 4
  call void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iEC2ERKSA_(%"class.boost::iterator_adaptor"* %0, %"struct.std::_List_iterator"* %1)
  %m_src = getelementptr inbounds %"struct.boost::detail::out_edge_iter"* %this1, i32 0, i32 1
  %2 = load i32** %src.addr, align 4
  %3 = load i32* %2, align 4
  store i32 %3, i32* %m_src, align 4
  ret void
}

define linkonce_odr void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iEC2ERKSA_(%"class.boost::iterator_adaptor"* %this, %"struct.std::_List_iterator"* %iter) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  %iter.addr = alloca %"struct.std::_List_iterator"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %iter, %"struct.std::_List_iterator"** %iter.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %0 = bitcast %"class.boost::iterator_adaptor"* %this1 to %"class.boost::iterator_facade.27"*
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  %1 = load %"struct.std::_List_iterator"** %iter.addr, align 4
  %2 = bitcast %"struct.std::_List_iterator"* %m_iterator to i8*
  %3 = bitcast %"struct.std::_List_iterator"* %1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESE_EC1ERKSE_SH_(%"struct.std::pair.26"* %this, %"struct.boost::detail::out_edge_iter"* %__a, %"struct.boost::detail::out_edge_iter"* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.26"*, align 4
  %__a.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %__b.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.std::pair.26"* %this, %"struct.std::pair.26"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %__a, %"struct.boost::detail::out_edge_iter"** %__a.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %__b, %"struct.boost::detail::out_edge_iter"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.26"** %this.addr
  %0 = load %"struct.boost::detail::out_edge_iter"** %__a.addr
  %1 = load %"struct.boost::detail::out_edge_iter"** %__b.addr
  call void @_ZNSt4pairIN5boost6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESE_EC2ERKSE_SH_(%"struct.std::pair.26"* %this1, %"struct.boost::detail::out_edge_iter"* %0, %"struct.boost::detail::out_edge_iter"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESE_EC2ERKSE_SH_(%"struct.std::pair.26"* %this, %"struct.boost::detail::out_edge_iter"* %__a, %"struct.boost::detail::out_edge_iter"* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.26"*, align 4
  %__a.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %__b.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.std::pair.26"* %this, %"struct.std::pair.26"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %__a, %"struct.boost::detail::out_edge_iter"** %__a.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %__b, %"struct.boost::detail::out_edge_iter"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.26"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.26"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::detail::out_edge_iter"** %__a.addr, align 4
  %1 = bitcast %"struct.boost::detail::out_edge_iter"* %first to i8*
  %2 = bitcast %"struct.boost::detail::out_edge_iter"* %0 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 8, i32 4, i1 false)
  %second = getelementptr inbounds %"struct.std::pair.26"* %this1, i32 0, i32 1
  %3 = load %"struct.boost::detail::out_edge_iter"** %__b.addr, align 4
  %4 = bitcast %"struct.boost::detail::out_edge_iter"* %second to i8*
  %5 = bitcast %"struct.boost::detail::out_edge_iter"* %3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 8, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE6assignERKSH_(%"class.boost::optional_detail::optional_base"* %this, %"struct.std::pair.26"* %val) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %val.addr = alloca %"struct.std::pair.26"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  store %"struct.std::pair.26"* %val, %"struct.std::pair.26"** %val.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %call = call zeroext i1 @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE14is_initializedEv(%"class.boost::optional_detail::optional_base"* %this1)
  br i1 %call, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %0 = load %"struct.std::pair.26"** %val.addr, align 4
  %1 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12assign_valueERKSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this1, %"struct.std::pair.26"* %0)
  br label %if.end

if.else:                                          ; preds = %entry
  %2 = load %"struct.std::pair.26"** %val.addr, align 4
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE9constructERKSH_(%"class.boost::optional_detail::optional_base"* %this1, %"struct.std::pair.26"* %2)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then
  ret void
}

define linkonce_odr void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12assign_valueERKSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this, %"struct.std::pair.26"* %val) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %val.addr = alloca %"struct.std::pair.26"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  store %"struct.std::pair.26"* %val, %"struct.std::pair.26"** %val.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %call = call %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8get_implEv(%"class.boost::optional_detail::optional_base"* %this1)
  %1 = load %"struct.std::pair.26"** %val.addr, align 4
  %2 = bitcast %"struct.std::pair.26"* %call to i8*
  %3 = bitcast %"struct.std::pair.26"* %1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 16, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE9constructERKSH_(%"class.boost::optional_detail::optional_base"* %this, %"struct.std::pair.26"* %val) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %val.addr = alloca %"struct.std::pair.26"*, align 4
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  store %"struct.std::pair.26"* %val, %"struct.std::pair.26"** %val.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %m_storage = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 2
  %call = call i8* @_ZN5boost15optional_detail15aligned_storageISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE7addressEv(%"class.boost::optional_detail::aligned_storage"* %m_storage)
  %new.isnull = icmp eq i8* %call, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %0 = bitcast i8* %call to %"struct.std::pair.26"*
  %1 = load %"struct.std::pair.26"** %val.addr, align 4
  %2 = bitcast %"struct.std::pair.26"* %0 to i8*
  %3 = bitcast %"struct.std::pair.26"* %1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 16, i32 4, i1 false)
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %4 = phi %"struct.std::pair.26"* [ %0, %new.notnull ], [ null, %entry ]
  %m_initialized = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 0
  store i8 1, i8* %m_initialized, align 1
  ret void
}

define linkonce_odr i8* @_ZN5boost15optional_detail15aligned_storageISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE7addressEv(%"class.boost::optional_detail::aligned_storage"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::aligned_storage"*, align 4
  store %"class.boost::optional_detail::aligned_storage"* %this, %"class.boost::optional_detail::aligned_storage"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::aligned_storage"** %this.addr
  %dummy_ = getelementptr inbounds %"class.boost::optional_detail::aligned_storage"* %this1, i32 0, i32 0
  %0 = bitcast %"union.boost::optional_detail::aligned_storage<std::pair<boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<std::_List_iterator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >::dummy_u"* %dummy_ to i8*
  ret i8* %0
}

define linkonce_odr %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8get_implEv(%"class.boost::optional_detail::optional_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %call = call %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE10get_objectEv(%"class.boost::optional_detail::optional_base"* %this1)
  %0 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  %call2 = call %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE11dereferenceEPSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this1, %"struct.std::pair.26"* %call)
  ret %"struct.std::pair.26"* %call2
}

define linkonce_odr %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE11dereferenceEPSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this, %"struct.std::pair.26"* %p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %p.addr = alloca %"struct.std::pair.26"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  store %"struct.std::pair.26"* %p, %"struct.std::pair.26"** %p.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %1 = load %"struct.std::pair.26"** %p.addr, align 4
  ret %"struct.std::pair.26"* %1
}

define linkonce_odr %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE10get_objectEv(%"class.boost::optional_detail::optional_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %caster = alloca %union.anon.29, align 4
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %ap_pvoid = bitcast %union.anon.29* %caster to i8**
  %m_storage = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 2
  %call = call i8* @_ZN5boost15optional_detail15aligned_storageISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE7addressEv(%"class.boost::optional_detail::aligned_storage"* %m_storage)
  store i8* %call, i8** %ap_pvoid, align 4
  %as_ptype = bitcast %union.anon.29* %caster to %"struct.std::pair.26"**
  %0 = load %"struct.std::pair.26"** %as_ptype, align 4
  ret %"struct.std::pair.26"* %0
}

define linkonce_odr %"class.std::list.21"* @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %this, i32 %v) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %v.addr = alloca i32, align 4
  store %"class.boost::vec_adj_list_impl"* %this, %"class.boost::vec_adj_list_impl"** %this.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  %this1 = load %"class.boost::vec_adj_list_impl"** %this.addr
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 1
  %0 = load i32* %v.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEixEj(%"class.std::vector"* %m_vertices, i32 %0)
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, i32 0, i32 0
  ret %"class.std::list.21"* %m_out_edges
}

define linkonce_odr i32 @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE4sizeEv(%"class.std::list.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %agg.tmp = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp2 = alloca %"struct.std::_List_const_iterator", align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  call void @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5beginEv(%"struct.std::_List_const_iterator"* sret %agg.tmp, %"class.std::list.21"* %this1)
  call void @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_const_iterator"* sret %agg.tmp2, %"class.std::list.21"* %this1)
  %call = call i32 @_ZSt8distanceISt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEENSt15iterator_traitsIT_E15difference_typeESB_SB_(%"struct.std::_List_const_iterator"* byval align 4 %agg.tmp, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp2)
  ret i32 %call
}

define linkonce_odr i32 @_ZSt8distanceISt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEENSt15iterator_traitsIT_E15difference_typeESB_SB_(%"struct.std::_List_const_iterator"* byval align 4 %__first, %"struct.std::_List_const_iterator"* byval align 4 %__last) inlinehint {
entry:
  %agg.tmp = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp1 = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp2 = alloca %"struct.std::input_iterator_tag", align 1
  %ref.tmp = alloca %"struct.std::bidirectional_iterator_tag", align 1
  %0 = bitcast %"struct.std::_List_const_iterator"* %agg.tmp to i8*
  %1 = bitcast %"struct.std::_List_const_iterator"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %2 = bitcast %"struct.std::_List_const_iterator"* %agg.tmp1 to i8*
  %3 = bitcast %"struct.std::_List_const_iterator"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  call void @_ZSt19__iterator_categoryISt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEENSt15iterator_traitsIT_E17iterator_categoryERKSB_(%"struct.std::bidirectional_iterator_tag"* sret %ref.tmp, %"struct.std::_List_const_iterator"* %__first)
  %4 = bitcast %"struct.std::bidirectional_iterator_tag"* %ref.tmp to %"struct.std::input_iterator_tag"*
  %call = call i32 @_ZSt10__distanceISt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEENSt15iterator_traitsIT_E15difference_typeESB_SB_St18input_iterator_tag(%"struct.std::_List_const_iterator"* byval align 4 %agg.tmp, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp1)
  ret i32 %call
}

define linkonce_odr void @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5beginEv(%"struct.std::_List_const_iterator"* noalias sret %agg.result, %"class.std::list.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %0, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, i32 0, i32 0
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node, i32 0, i32 0
  %1 = load %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  call void @_ZNSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1EPKNSt8__detail15_List_node_baseE(%"struct.std::_List_const_iterator"* %agg.result, %"struct.std::__detail::_List_node_base"* %1)
  ret void
}

define linkonce_odr void @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_const_iterator"* noalias sret %agg.result, %"class.std::list.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %0, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, i32 0, i32 0
  call void @_ZNSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1EPKNSt8__detail15_List_node_baseE(%"struct.std::_List_const_iterator"* %agg.result, %"struct.std::__detail::_List_node_base"* %_M_node)
  ret void
}

define linkonce_odr void @_ZNSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1EPKNSt8__detail15_List_node_baseE(%"struct.std::_List_const_iterator"* %this, %"struct.std::__detail::_List_node_base"* %__x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_const_iterator"*, align 4
  %__x.addr = alloca %"struct.std::__detail::_List_node_base"*, align 4
  store %"struct.std::_List_const_iterator"* %this, %"struct.std::_List_const_iterator"** %this.addr, align 4
  store %"struct.std::__detail::_List_node_base"* %__x, %"struct.std::__detail::_List_node_base"** %__x.addr, align 4
  %this1 = load %"struct.std::_List_const_iterator"** %this.addr
  %0 = load %"struct.std::__detail::_List_node_base"** %__x.addr, align 4
  call void @_ZNSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC2EPKNSt8__detail15_List_node_baseE(%"struct.std::_List_const_iterator"* %this1, %"struct.std::__detail::_List_node_base"* %0)
  ret void
}

define linkonce_odr void @_ZNSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC2EPKNSt8__detail15_List_node_baseE(%"struct.std::_List_const_iterator"* %this, %"struct.std::__detail::_List_node_base"* %__x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_const_iterator"*, align 4
  %__x.addr = alloca %"struct.std::__detail::_List_node_base"*, align 4
  store %"struct.std::_List_const_iterator"* %this, %"struct.std::_List_const_iterator"** %this.addr, align 4
  store %"struct.std::__detail::_List_node_base"* %__x, %"struct.std::__detail::_List_node_base"** %__x.addr, align 4
  %this1 = load %"struct.std::_List_const_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_const_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %__x.addr, align 4
  store %"struct.std::__detail::_List_node_base"* %0, %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  ret void
}

define linkonce_odr i32 @_ZSt10__distanceISt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEENSt15iterator_traitsIT_E15difference_typeESB_SB_St18input_iterator_tag(%"struct.std::_List_const_iterator"* byval align 4 %__first, %"struct.std::_List_const_iterator"* byval align 4 %__last) inlinehint {
entry:
  %0 = alloca %"struct.std::input_iterator_tag", align 1
  %__n = alloca i32, align 4
  store i32 0, i32* %__n, align 4
  br label %while.cond

while.cond:                                       ; preds = %while.body, %entry
  %call = call zeroext i1 @_ZNKSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEneERKS8_(%"struct.std::_List_const_iterator"* %__first, %"struct.std::_List_const_iterator"* %__last)
  br i1 %call, label %while.body, label %while.end

while.body:                                       ; preds = %while.cond
  %call1 = call %"struct.std::_List_const_iterator"* @_ZNSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEppEv(%"struct.std::_List_const_iterator"* %__first)
  %1 = load i32* %__n, align 4
  %inc = add nsw i32 %1, 1
  store i32 %inc, i32* %__n, align 4
  br label %while.cond

while.end:                                        ; preds = %while.cond
  %2 = load i32* %__n, align 4
  ret i32 %2
}

define linkonce_odr void @_ZSt19__iterator_categoryISt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEENSt15iterator_traitsIT_E17iterator_categoryERKSB_(%"struct.std::bidirectional_iterator_tag"* noalias sret %agg.result, %"struct.std::_List_const_iterator"*) nounwind inlinehint {
entry:
  %.addr = alloca %"struct.std::_List_const_iterator"*, align 4
  store %"struct.std::_List_const_iterator"* %0, %"struct.std::_List_const_iterator"** %.addr, align 4
  ret void
}

define linkonce_odr zeroext i1 @_ZNKSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEneERKS8_(%"struct.std::_List_const_iterator"* %this, %"struct.std::_List_const_iterator"* %__x) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_const_iterator"*, align 4
  %__x.addr = alloca %"struct.std::_List_const_iterator"*, align 4
  store %"struct.std::_List_const_iterator"* %this, %"struct.std::_List_const_iterator"** %this.addr, align 4
  store %"struct.std::_List_const_iterator"* %__x, %"struct.std::_List_const_iterator"** %__x.addr, align 4
  %this1 = load %"struct.std::_List_const_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_const_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %1 = load %"struct.std::_List_const_iterator"** %__x.addr, align 4
  %_M_node2 = getelementptr inbounds %"struct.std::_List_const_iterator"* %1, i32 0, i32 0
  %2 = load %"struct.std::__detail::_List_node_base"** %_M_node2, align 4
  %cmp = icmp ne %"struct.std::__detail::_List_node_base"* %0, %2
  ret i1 %cmp
}

define linkonce_odr %"struct.std::_List_const_iterator"* @_ZNSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEppEv(%"struct.std::_List_const_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_const_iterator"*, align 4
  store %"struct.std::_List_const_iterator"* %this, %"struct.std::_List_const_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_List_const_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_const_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %0, i32 0, i32 0
  %1 = load %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  %_M_node2 = getelementptr inbounds %"struct.std::_List_const_iterator"* %this1, i32 0, i32 0
  store %"struct.std::__detail::_List_node_base"* %1, %"struct.std::__detail::_List_node_base"** %_M_node2, align 4
  ret %"struct.std::_List_const_iterator"* %this1
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEixEj(%"class.std::vector"* %this, i32 %__n) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, i32 %2
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr
}

define linkonce_odr zeroext i1 @_ZN5boost20iterator_core_access5equalINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"struct.boost::detail::out_edge_iter"* %f1, %"struct.boost::detail::out_edge_iter"* %f2) align 2 {
entry:
  %f1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %f2.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %0 = alloca %"struct.mpl_::bool_.30", align 1
  store %"struct.boost::detail::out_edge_iter"* %f1, %"struct.boost::detail::out_edge_iter"** %f1.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %f2, %"struct.boost::detail::out_edge_iter"** %f2.addr, align 4
  %1 = load %"struct.boost::detail::out_edge_iter"** %f1.addr, align 4
  %2 = bitcast %"struct.boost::detail::out_edge_iter"* %1 to %"class.boost::iterator_adaptor"*
  %3 = load %"struct.boost::detail::out_edge_iter"** %f2.addr, align 4
  %4 = bitcast %"struct.boost::detail::out_edge_iter"* %3 to %"class.boost::iterator_adaptor"*
  %call = call zeroext i1 @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iE5equalISE_SA_SD_SF_SD_iEEbRKNS0_IT_T0_T1_T2_T3_T4_EE(%"class.boost::iterator_adaptor"* %2, %"class.boost::iterator_adaptor"* %4)
  ret i1 %call
}

define linkonce_odr zeroext i1 @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iE5equalISE_SA_SD_SF_SD_iEEbRKNS0_IT_T0_T1_T2_T3_T4_EE(%"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"* %x) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  %x.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  store %"class.boost::iterator_adaptor"* %x, %"class.boost::iterator_adaptor"** %x.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  %0 = load %"class.boost::iterator_adaptor"** %x.addr, align 4
  %call = call %"struct.std::_List_iterator"* @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iE4baseEv(%"class.boost::iterator_adaptor"* %0)
  %call2 = call zeroext i1 @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEeqERKS8_(%"struct.std::_List_iterator"* %m_iterator, %"struct.std::_List_iterator"* %call)
  ret i1 %call2
}

define linkonce_odr zeroext i1 @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEeqERKS8_(%"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"* %__x) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_iterator"*, align 4
  %__x.addr = alloca %"struct.std::_List_iterator"*, align 4
  store %"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %__x, %"struct.std::_List_iterator"** %__x.addr, align 4
  %this1 = load %"struct.std::_List_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %1 = load %"struct.std::_List_iterator"** %__x.addr, align 4
  %_M_node2 = getelementptr inbounds %"struct.std::_List_iterator"* %1, i32 0, i32 0
  %2 = load %"struct.std::__detail::_List_node_base"** %_M_node2, align 4
  %cmp = icmp eq %"struct.std::__detail::_List_node_base"* %0, %2
  ret i1 %cmp
}

define linkonce_odr void @_ZN5boost20iterator_core_access9incrementINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEEEEvRT_(%"struct.boost::detail::out_edge_iter"* %f) align 2 {
entry:
  %f.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %f, %"struct.boost::detail::out_edge_iter"** %f.addr, align 4
  %0 = load %"struct.boost::detail::out_edge_iter"** %f.addr, align 4
  %1 = bitcast %"struct.boost::detail::out_edge_iter"* %0 to %"class.boost::iterator_adaptor"*
  call void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iE9incrementEv(%"class.boost::iterator_adaptor"* %1)
  ret void
}

define linkonce_odr %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iE7derivedEv(%"class.boost::iterator_facade.27"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade.27"*, align 4
  store %"class.boost::iterator_facade.27"* %this, %"class.boost::iterator_facade.27"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade.27"** %this.addr
  %0 = bitcast %"class.boost::iterator_facade.27"* %this1 to %"struct.boost::detail::out_edge_iter"*
  ret %"struct.boost::detail::out_edge_iter"* %0
}

define linkonce_odr void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iE9incrementEv(%"class.boost::iterator_adaptor"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  %call = call %"struct.std::_List_iterator"* @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEppEv(%"struct.std::_List_iterator"* %m_iterator)
  ret void
}

define linkonce_odr %"struct.std::_List_iterator"* @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEppEv(%"struct.std::_List_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_iterator"*, align 4
  store %"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_List_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %0, i32 0, i32 0
  %1 = load %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  %_M_node2 = getelementptr inbounds %"struct.std::_List_iterator"* %this1, i32 0, i32 0
  store %"struct.std::__detail::_List_node_base"* %1, %"struct.std::__detail::_List_node_base"** %_M_node2, align 4
  ret %"struct.std::_List_iterator"* %this1
}

define linkonce_odr %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12get_ptr_implEv(%"class.boost::optional_detail::optional_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %call = call %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE10get_objectEv(%"class.boost::optional_detail::optional_base"* %this1)
  %0 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  %call2 = call %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8cast_ptrEPSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this1, %"struct.std::pair.26"* %call)
  ret %"struct.std::pair.26"* %call2
}

define linkonce_odr %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8cast_ptrEPSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this, %"struct.std::pair.26"* %p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %p.addr = alloca %"struct.std::pair.26"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  store %"struct.std::pair.26"* %p, %"struct.std::pair.26"** %p.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %1 = load %"struct.std::pair.26"** %p.addr, align 4
  ret %"struct.std::pair.26"* %1
}

define linkonce_odr zeroext i1 @_ZN5boostneINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iSE_SD_SF_SD_iEENS1_23enable_if_interoperableIT_T4_NS_3mpl6apply2INS1_12always_bool2ESH_SI_E4typeEE4typeERKNS_15iterator_facadeISH_T0_T1_T2_T3_EERKNSQ_ISI_T5_T6_T7_T8_EE(%"class.boost::iterator_facade.27"* %lhs, %"class.boost::iterator_facade.27"* %rhs) inlinehint {
entry:
  %lhs.addr = alloca %"class.boost::iterator_facade.27"*, align 4
  %rhs.addr = alloca %"class.boost::iterator_facade.27"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_.30", align 1
  %ref.tmp = alloca %"struct.boost::is_convertible", align 1
  store %"class.boost::iterator_facade.27"* %lhs, %"class.boost::iterator_facade.27"** %lhs.addr, align 4
  store %"class.boost::iterator_facade.27"* %rhs, %"class.boost::iterator_facade.27"** %rhs.addr, align 4
  %0 = load %"class.boost::iterator_facade.27"** %lhs.addr, align 4
  %1 = bitcast %"class.boost::iterator_facade.27"* %0 to %"struct.boost::detail::out_edge_iter"*
  %2 = load %"class.boost::iterator_facade.27"** %rhs.addr, align 4
  %3 = bitcast %"class.boost::iterator_facade.27"* %2 to %"struct.boost::detail::out_edge_iter"*
  %4 = bitcast %"struct.boost::is_convertible"* %ref.tmp to %"struct.mpl_::bool_.30"*
  %call = call zeroext i1 @_ZN5boost20iterator_core_access5equalINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"struct.boost::detail::out_edge_iter"* %1, %"struct.boost::detail::out_edge_iter"* %3)
  %lnot = xor i1 %call, true
  ret i1 %lnot
}

define linkonce_odr %"class.boost::detail::adj_list_edge_iterator"* @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEaSERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"*) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %0, %"class.boost::detail::adj_list_edge_iterator"** %.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %vBegin = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 0
  %1 = load %"class.boost::detail::adj_list_edge_iterator"** %.addr, align 4
  %vBegin2 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %1, i32 0, i32 0
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %vBegin to i8*
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %vBegin2 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %vCurr = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %4 = load %"class.boost::detail::adj_list_edge_iterator"** %.addr, align 4
  %vCurr3 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %4, i32 0, i32 1
  %5 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr to i8*
  %6 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %6, i32 4, i32 4, i1 false)
  %vEnd = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  %7 = load %"class.boost::detail::adj_list_edge_iterator"** %.addr, align 4
  %vEnd4 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %7, i32 0, i32 2
  %8 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd to i8*
  %9 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd4 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %8, i8* %9, i32 4, i32 4, i1 false)
  %edges = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  %10 = load %"class.boost::detail::adj_list_edge_iterator"** %.addr, align 4
  %edges5 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %10, i32 0, i32 3
  %call = call %"class.boost::optional"* @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEaSERKSH_(%"class.boost::optional"* %edges, %"class.boost::optional"* %edges5)
  %11 = load %"class.boost::detail::adj_list_edge_iterator"** %.addr, align 4
  %m_g = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %11, i32 0, i32 4
  %12 = load %"class.boost::adjacency_list"** %m_g, align 4
  %m_g6 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 4
  store %"class.boost::adjacency_list"* %12, %"class.boost::adjacency_list"** %m_g6, align 4
  ret %"class.boost::detail::adj_list_edge_iterator"* %this1
}

define linkonce_odr %"class.boost::optional"* @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEaSERKSH_(%"class.boost::optional"* %this, %"class.boost::optional"* %rhs) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  %rhs.addr = alloca %"class.boost::optional"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  store %"class.boost::optional"* %rhs, %"class.boost::optional"** %rhs.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  %0 = bitcast %"class.boost::optional"* %this1 to %"class.boost::optional_detail::optional_base"*
  %1 = load %"class.boost::optional"** %rhs.addr, align 4
  %2 = bitcast %"class.boost::optional"* %1 to %"class.boost::optional_detail::optional_base"*
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE6assignERKSI_(%"class.boost::optional_detail::optional_base"* %0, %"class.boost::optional_detail::optional_base"* %2)
  ret %"class.boost::optional"* %this1
}

define linkonce_odr void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE6assignERKSI_(%"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"* %rhs) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %rhs.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  store %"class.boost::optional_detail::optional_base"* %rhs, %"class.boost::optional_detail::optional_base"** %rhs.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %call = call zeroext i1 @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE14is_initializedEv(%"class.boost::optional_detail::optional_base"* %this1)
  br i1 %call, label %if.then, label %if.else5

if.then:                                          ; preds = %entry
  %0 = load %"class.boost::optional_detail::optional_base"** %rhs.addr, align 4
  %call2 = call zeroext i1 @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE14is_initializedEv(%"class.boost::optional_detail::optional_base"* %0)
  br i1 %call2, label %if.then3, label %if.else

if.then3:                                         ; preds = %if.then
  %1 = load %"class.boost::optional_detail::optional_base"** %rhs.addr, align 4
  %call4 = call %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8get_implEv(%"class.boost::optional_detail::optional_base"* %1)
  %2 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12assign_valueERKSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this1, %"struct.std::pair.26"* %call4)
  br label %if.end

if.else:                                          ; preds = %if.then
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE7destroyEv(%"class.boost::optional_detail::optional_base"* %this1)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then3
  br label %if.end10

if.else5:                                         ; preds = %entry
  %3 = load %"class.boost::optional_detail::optional_base"** %rhs.addr, align 4
  %call6 = call zeroext i1 @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE14is_initializedEv(%"class.boost::optional_detail::optional_base"* %3)
  br i1 %call6, label %if.then7, label %if.end9

if.then7:                                         ; preds = %if.else5
  %4 = load %"class.boost::optional_detail::optional_base"** %rhs.addr, align 4
  %call8 = call %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8get_implEv(%"class.boost::optional_detail::optional_base"* %4)
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE9constructERKSH_(%"class.boost::optional_detail::optional_base"* %this1, %"struct.std::pair.26"* %call8)
  br label %if.end9

if.end9:                                          ; preds = %if.then7, %if.else5
  br label %if.end10

if.end10:                                         ; preds = %if.end9, %if.end
  ret void
}

define linkonce_odr %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8get_implEv(%"class.boost::optional_detail::optional_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %call = call %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE10get_objectEv(%"class.boost::optional_detail::optional_base"* %this1)
  %0 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  %call2 = call %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE11dereferenceEPKSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this1, %"struct.std::pair.26"* %call)
  ret %"struct.std::pair.26"* %call2
}

define linkonce_odr void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE7destroyEv(%"class.boost::optional_detail::optional_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %m_initialized = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 0
  %0 = load i8* %m_initialized, align 1
  %tobool = trunc i8 %0 to i1
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %1 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12destroy_implEN4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this1)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12destroy_implEN4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %call = call %"struct.std::pair.26"* @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE12get_ptr_implEv(%"class.boost::optional_detail::optional_base"* %this1)
  %m_initialized = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 0
  store i8 0, i8* %m_initialized, align 1
  ret void
}

define linkonce_odr %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE11dereferenceEPKSH_N4mpl_5bool_ILb0EEE(%"class.boost::optional_detail::optional_base"* %this, %"struct.std::pair.26"* %p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %p.addr = alloca %"struct.std::pair.26"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  store %"struct.std::pair.26"* %p, %"struct.std::pair.26"** %p.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %1 = load %"struct.std::pair.26"** %p.addr, align 4
  ret %"struct.std::pair.26"* %1
}

define linkonce_odr void @_ZSt9make_pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_ESt4pairIT_T0_ESQ_SR_(%"struct.std::pair.20"* noalias sret %agg.result, %"class.boost::detail::adj_list_edge_iterator"* %__x, %"class.boost::detail::adj_list_edge_iterator"* %__y) inlinehint {
entry:
  call void @_ZNSt4pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_EC1ERKSO_SR_(%"struct.std::pair.20"* %agg.result, %"class.boost::detail::adj_list_edge_iterator"* %__x, %"class.boost::detail::adj_list_edge_iterator"* %__y)
  ret void
}

define linkonce_odr void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC1ISM_EES4_S4_S4_RKT_(%"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::range_detail::integer_iterator"* byval align 4 %b, %"class.boost::range_detail::integer_iterator"* byval align 4 %c, %"class.boost::range_detail::integer_iterator"* byval align 4 %e, %"class.boost::adjacency_list"* %g) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %0 = load %"class.boost::adjacency_list"** %g.addr
  call void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC2ISM_EES4_S4_S4_RKT_(%"class.boost::detail::adj_list_edge_iterator"* %this1, %"class.boost::range_detail::integer_iterator"* byval align 4 %b, %"class.boost::range_detail::integer_iterator"* byval align 4 %c, %"class.boost::range_detail::integer_iterator"* byval align 4 %e, %"class.boost::adjacency_list"* %0)
  ret void
}

define linkonce_odr void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE10vertex_setEv(%"class.boost::integer_range"* noalias sret %agg.result, %"class.boost::vec_adj_list_impl"* %this) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  store %"class.boost::vec_adj_list_impl"* %this, %"class.boost::vec_adj_list_impl"** %this.addr, align 4
  %this1 = load %"class.boost::vec_adj_list_impl"** %this.addr
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 1
  %call = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE4sizeEv(%"class.std::vector"* %m_vertices)
  call void @_ZN5boost13integer_rangeIjEC1Ejj(%"class.boost::integer_range"* %agg.result, i32 0, i32 %call)
  ret void
}

define linkonce_odr void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE5beginEv(%"class.boost::range_detail::integer_iterator"* noalias sret %agg.result, %"class.boost::iterator_range"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_range"*, align 4
  store %"class.boost::iterator_range"* %this, %"class.boost::iterator_range"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_range"** %this.addr
  %m_Begin = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %agg.result to i8*
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %m_Begin to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE3endEv(%"class.boost::range_detail::integer_iterator"* noalias sret %agg.result, %"class.boost::iterator_range"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_range"*, align 4
  store %"class.boost::iterator_range"* %this, %"class.boost::iterator_range"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_range"** %this.addr
  %m_End = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 1
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %agg.result to i8*
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %m_End to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost13integer_rangeIjEC1Ejj(%"class.boost::integer_range"* %this, i32 %first, i32 %last) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::integer_range"*, align 4
  %first.addr = alloca i32, align 4
  %last.addr = alloca i32, align 4
  store %"class.boost::integer_range"* %this, %"class.boost::integer_range"** %this.addr, align 4
  store i32 %first, i32* %first.addr, align 4
  store i32 %last, i32* %last.addr, align 4
  %this1 = load %"class.boost::integer_range"** %this.addr
  %0 = load i32* %first.addr, align 4
  %1 = load i32* %last.addr, align 4
  call void @_ZN5boost13integer_rangeIjEC2Ejj(%"class.boost::integer_range"* %this1, i32 %0, i32 %1)
  ret void
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE4sizeEv(%"class.std::vector"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %2 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %2, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 12
  ret i32 %sub.ptr.div
}

define linkonce_odr void @_ZN5boost13integer_rangeIjEC2Ejj(%"class.boost::integer_range"* %this, i32 %first, i32 %last) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::integer_range"*, align 4
  %first.addr = alloca i32, align 4
  %last.addr = alloca i32, align 4
  %agg.tmp = alloca %"class.boost::range_detail::integer_iterator", align 4
  %agg.tmp2 = alloca %"class.boost::range_detail::integer_iterator", align 4
  store %"class.boost::integer_range"* %this, %"class.boost::integer_range"** %this.addr, align 4
  store i32 %first, i32* %first.addr, align 4
  store i32 %last, i32* %last.addr, align 4
  %this1 = load %"class.boost::integer_range"** %this.addr
  %0 = bitcast %"class.boost::integer_range"* %this1 to %"class.boost::iterator_range"*
  %1 = load i32* %first.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ej(%"class.boost::range_detail::integer_iterator"* %agg.tmp, i32 %1)
  %2 = load i32* %last.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ej(%"class.boost::range_detail::integer_iterator"* %agg.tmp2, i32 %2)
  call void @_ZN5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEEC2IS3_EET_S6_(%"class.boost::iterator_range"* %0, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp2)
  ret void
}

define linkonce_odr void @_ZN5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEEC2IS3_EET_S6_(%"class.boost::iterator_range"* %this, %"class.boost::range_detail::integer_iterator"* byval align 4 %Begin, %"class.boost::range_detail::integer_iterator"* byval align 4 %End) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_range"*, align 4
  store %"class.boost::iterator_range"* %this, %"class.boost::iterator_range"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_range"** %this.addr
  %m_Begin = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %m_Begin to i8*
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %Begin to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %m_End = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 1
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %m_End to i8*
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %End to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjEC1Ej(%"class.boost::range_detail::integer_iterator"* %this, i32 %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %x.addr = alloca i32, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %0 = load i32* %x.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjEC2Ej(%"class.boost::range_detail::integer_iterator"* %this1, i32 %0)
  ret void
}

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjEC2Ej(%"class.boost::range_detail::integer_iterator"* %this, i32 %x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %x.addr = alloca i32, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %this1 to %"class.boost::iterator_facade"*
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  store i32 %1, i32* %m_value, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC2ISM_EES4_S4_S4_RKT_(%"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::range_detail::integer_iterator"* byval align 4 %b, %"class.boost::range_detail::integer_iterator"* byval align 4 %c, %"class.boost::range_detail::integer_iterator"* byval align 4 %e, %"class.boost::adjacency_list"* %g) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp = alloca %"struct.std::pair.26", align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %vBegin = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %vBegin to i8*
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %b to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %vCurr = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr to i8*
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %c to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %vEnd = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  %4 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd to i8*
  %5 = bitcast %"class.boost::range_detail::integer_iterator"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  %edges = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  call void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEC1Ev(%"class.boost::optional"* %edges)
  %m_g = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  store %"class.boost::adjacency_list"* %6, %"class.boost::adjacency_list"** %m_g, align 4
  %vCurr2 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %7 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr2 to %"class.boost::iterator_facade"*
  %vEnd3 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  %8 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd3 to %"class.boost::iterator_facade"*
  %call = invoke zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %7, %"class.boost::iterator_facade"* %8)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  br i1 %call, label %if.then, label %if.end30

if.then:                                          ; preds = %invoke.cont
  br label %while.cond

while.cond:                                       ; preds = %invoke.cont15, %if.then
  %vCurr4 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %9 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr4 to %"class.boost::iterator_facade"*
  %vEnd5 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  %10 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd5 to %"class.boost::iterator_facade"*
  %call7 = invoke zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %9, %"class.boost::iterator_facade"* %10)
          to label %invoke.cont6 unwind label %lpad

invoke.cont6:                                     ; preds = %while.cond
  br i1 %call7, label %land.rhs, label %land.end

land.rhs:                                         ; preds = %invoke.cont6
  %vCurr8 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %11 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr8 to %"class.boost::iterator_facade"*
  %call10 = invoke i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %11)
          to label %invoke.cont9 unwind label %lpad

invoke.cont9:                                     ; preds = %land.rhs
  %m_g11 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 4
  %12 = load %"class.boost::adjacency_list"** %m_g11, align 4
  %13 = bitcast %"class.boost::adjacency_list"* %12 to %"struct.boost::adj_list_helper"*
  %call13 = invoke i32 @_ZN5boost10out_degreeINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_16degree_size_typeENSG_17vertex_descriptorERKNS_15adj_list_helperISG_T0_EE(i32 %call10, %"struct.boost::adj_list_helper"* %13)
          to label %invoke.cont12 unwind label %lpad

invoke.cont12:                                    ; preds = %invoke.cont9
  %cmp = icmp eq i32 %call13, 0
  br label %land.end

land.end:                                         ; preds = %invoke.cont12, %invoke.cont6
  %14 = phi i1 [ false, %invoke.cont6 ], [ %cmp, %invoke.cont12 ]
  br i1 %14, label %while.body, label %while.end

while.body:                                       ; preds = %land.end
  %vCurr14 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %15 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr14 to %"class.boost::iterator_facade"*
  %call16 = invoke %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %15)
          to label %invoke.cont15 unwind label %lpad

invoke.cont15:                                    ; preds = %while.body
  br label %while.cond

lpad:                                             ; preds = %invoke.cont27, %invoke.cont24, %if.then21, %while.end, %while.body, %invoke.cont9, %land.rhs, %while.cond, %entry
  %16 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %17 = extractvalue { i8*, i32 } %16, 0
  store i8* %17, i8** %exn.slot
  %18 = extractvalue { i8*, i32 } %16, 1
  store i32 %18, i32* %ehselector.slot
  invoke void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EED1Ev(%"class.boost::optional"* %edges)
          to label %invoke.cont31 unwind label %terminate.lpad

while.end:                                        ; preds = %land.end
  %vCurr17 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %19 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr17 to %"class.boost::iterator_facade"*
  %vEnd18 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  %20 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd18 to %"class.boost::iterator_facade"*
  %call20 = invoke zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %19, %"class.boost::iterator_facade"* %20)
          to label %invoke.cont19 unwind label %lpad

invoke.cont19:                                    ; preds = %while.end
  br i1 %call20, label %if.then21, label %if.end

if.then21:                                        ; preds = %invoke.cont19
  %edges22 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  %vCurr23 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %21 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr23 to %"class.boost::iterator_facade"*
  %call25 = invoke i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %21)
          to label %invoke.cont24 unwind label %lpad

invoke.cont24:                                    ; preds = %if.then21
  %m_g26 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 4
  %22 = load %"class.boost::adjacency_list"** %m_g26, align 4
  %23 = bitcast %"class.boost::adjacency_list"* %22 to %"struct.boost::adj_list_helper"*
  invoke void @_ZN5boost9out_edgesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEESt4pairINT_17out_edge_iteratorESI_ENSH_17vertex_descriptorERKNS_15adj_list_helperISH_T0_EE(%"struct.std::pair.26"* sret %ref.tmp, i32 %call25, %"struct.boost::adj_list_helper"* %23)
          to label %invoke.cont27 unwind label %lpad

invoke.cont27:                                    ; preds = %invoke.cont24
  %call29 = invoke %"class.boost::optional"* @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEaSERKSG_(%"class.boost::optional"* %edges22, %"struct.std::pair.26"* %ref.tmp)
          to label %invoke.cont28 unwind label %lpad

invoke.cont28:                                    ; preds = %invoke.cont27
  br label %if.end

if.end:                                           ; preds = %invoke.cont28, %invoke.cont19
  br label %if.end30

if.end30:                                         ; preds = %if.end, %invoke.cont
  ret void

invoke.cont31:                                    ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont31
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val32 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val32

terminate.lpad:                                   ; preds = %lpad
  %24 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEC1Ev(%"class.boost::optional"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  call void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEC2Ev(%"class.boost::optional"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EED1Ev(%"class.boost::optional"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  call void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EED2Ev(%"class.boost::optional"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EED2Ev(%"class.boost::optional"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  %0 = bitcast %"class.boost::optional"* %this1 to %"class.boost::optional_detail::optional_base"*
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EED2Ev(%"class.boost::optional_detail::optional_base"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EED2Ev(%"class.boost::optional_detail::optional_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE7destroyEv(%"class.boost::optional_detail::optional_base"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEC2Ev(%"class.boost::optional"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  %0 = bitcast %"class.boost::optional"* %this1 to %"class.boost::optional_detail::optional_base"*
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EEC2Ev(%"class.boost::optional_detail::optional_base"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EEC2Ev(%"class.boost::optional_detail::optional_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %0 = bitcast %"class.boost::optional_detail::optional_base"* %this1 to %"struct.boost::optional_detail::optional_tag"*
  %m_initialized = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 0
  store i8 0, i8* %m_initialized, align 1
  %m_storage = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 2
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_EC1ERKSO_SR_(%"struct.std::pair.20"* %this, %"class.boost::detail::adj_list_edge_iterator"* %__a, %"class.boost::detail::adj_list_edge_iterator"* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.20"*, align 4
  %__a.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %__b.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"struct.std::pair.20"* %this, %"struct.std::pair.20"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %__a, %"class.boost::detail::adj_list_edge_iterator"** %__a.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %__b, %"class.boost::detail::adj_list_edge_iterator"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.20"** %this.addr
  %0 = load %"class.boost::detail::adj_list_edge_iterator"** %__a.addr
  %1 = load %"class.boost::detail::adj_list_edge_iterator"** %__b.addr
  call void @_ZNSt4pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_EC2ERKSO_SR_(%"struct.std::pair.20"* %this1, %"class.boost::detail::adj_list_edge_iterator"* %0, %"class.boost::detail::adj_list_edge_iterator"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_EC2ERKSO_SR_(%"struct.std::pair.20"* %this, %"class.boost::detail::adj_list_edge_iterator"* %__a, %"class.boost::detail::adj_list_edge_iterator"* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.20"*, align 4
  %__a.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %__b.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.20"* %this, %"struct.std::pair.20"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %__a, %"class.boost::detail::adj_list_edge_iterator"** %__a.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %__b, %"class.boost::detail::adj_list_edge_iterator"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.20"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.20"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::adj_list_edge_iterator"** %__a.addr, align 4
  call void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC1ERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %first, %"class.boost::detail::adj_list_edge_iterator"* %0)
  %second = getelementptr inbounds %"struct.std::pair.20"* %this1, i32 0, i32 1
  %1 = load %"class.boost::detail::adj_list_edge_iterator"** %__b.addr, align 4
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC1ERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %second, %"class.boost::detail::adj_list_edge_iterator"* %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %2 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %3 = extractvalue { i8*, i32 } %2, 0
  store i8* %3, i8** %exn.slot
  %4 = extractvalue { i8*, i32 } %2, 1
  store i32 %4, i32* %ehselector.slot
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %first)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC1ERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"* %x) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %x.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %x, %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %0 = load %"class.boost::detail::adj_list_edge_iterator"** %x.addr
  call void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC2ERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %this1, %"class.boost::detail::adj_list_edge_iterator"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC2ERKSN_(%"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"* %x) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %x.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %x, %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %vBegin = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %vBegin2 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %vBegin to i8*
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %vBegin2 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  %vCurr = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  %3 = load %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %vCurr3 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %3, i32 0, i32 1
  %4 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr to i8*
  %5 = bitcast %"class.boost::range_detail::integer_iterator"* %vCurr3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  %vEnd = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  %6 = load %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %vEnd4 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %6, i32 0, i32 2
  %7 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd to i8*
  %8 = bitcast %"class.boost::range_detail::integer_iterator"* %vEnd4 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %7, i8* %8, i32 4, i32 4, i1 false)
  %edges = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  %9 = load %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %edges5 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %9, i32 0, i32 3
  call void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEC1ERKSH_(%"class.boost::optional"* %edges, %"class.boost::optional"* %edges5)
  %m_g = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 4
  %10 = load %"class.boost::detail::adj_list_edge_iterator"** %x.addr, align 4
  %m_g6 = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %10, i32 0, i32 4
  %11 = load %"class.boost::adjacency_list"** %m_g6, align 4
  store %"class.boost::adjacency_list"* %11, %"class.boost::adjacency_list"** %m_g, align 4
  ret void
}

define linkonce_odr void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEC1ERKSH_(%"class.boost::optional"* %this, %"class.boost::optional"* %rhs) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  %rhs.addr = alloca %"class.boost::optional"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  store %"class.boost::optional"* %rhs, %"class.boost::optional"** %rhs.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  %0 = load %"class.boost::optional"** %rhs.addr
  call void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEC2ERKSH_(%"class.boost::optional"* %this1, %"class.boost::optional"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEC2ERKSH_(%"class.boost::optional"* %this, %"class.boost::optional"* %rhs) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::optional"*, align 4
  %rhs.addr = alloca %"class.boost::optional"*, align 4
  store %"class.boost::optional"* %this, %"class.boost::optional"** %this.addr, align 4
  store %"class.boost::optional"* %rhs, %"class.boost::optional"** %rhs.addr, align 4
  %this1 = load %"class.boost::optional"** %this.addr
  %0 = bitcast %"class.boost::optional"* %this1 to %"class.boost::optional_detail::optional_base"*
  %1 = load %"class.boost::optional"** %rhs.addr, align 4
  %2 = bitcast %"class.boost::optional"* %1 to %"class.boost::optional_detail::optional_base"*
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EEC2ERKSI_(%"class.boost::optional_detail::optional_base"* %0, %"class.boost::optional_detail::optional_base"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EEC2ERKSI_(%"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"* %rhs) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  %rhs.addr = alloca %"class.boost::optional_detail::optional_base"*, align 4
  store %"class.boost::optional_detail::optional_base"* %this, %"class.boost::optional_detail::optional_base"** %this.addr, align 4
  store %"class.boost::optional_detail::optional_base"* %rhs, %"class.boost::optional_detail::optional_base"** %rhs.addr, align 4
  %this1 = load %"class.boost::optional_detail::optional_base"** %this.addr
  %0 = bitcast %"class.boost::optional_detail::optional_base"* %this1 to %"struct.boost::optional_detail::optional_tag"*
  %m_initialized = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 0
  store i8 0, i8* %m_initialized, align 1
  %m_storage = getelementptr inbounds %"class.boost::optional_detail::optional_base"* %this1, i32 0, i32 2
  %1 = load %"class.boost::optional_detail::optional_base"** %rhs.addr, align 4
  %call = call zeroext i1 @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE14is_initializedEv(%"class.boost::optional_detail::optional_base"* %1)
  br i1 %call, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %2 = load %"class.boost::optional_detail::optional_base"** %rhs.addr, align 4
  %call2 = call %"struct.std::pair.26"* @_ZNK5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE8get_implEv(%"class.boost::optional_detail::optional_base"* %2)
  call void @_ZN5boost15optional_detail13optional_baseISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS3_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS3_14edge_desc_implINS_12directed_tagEjEEiEESG_EE9constructERKSH_(%"class.boost::optional_detail::optional_base"* %this1, %"struct.std::pair.26"* %call2)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEESQ_NS0_9null_typeESR_SR_SR_SR_SR_SR_SR_EC1ESQ_SQ_(%"class.boost::tuples::tuple.17"* %this, %"class.boost::detail::adj_list_edge_iterator"* %t0, %"class.boost::detail::adj_list_edge_iterator"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.17"*, align 4
  %t0.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %t1.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::tuples::tuple.17"* %this, %"class.boost::tuples::tuple.17"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t0, %"class.boost::detail::adj_list_edge_iterator"** %t0.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t1, %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.17"** %this.addr
  %0 = load %"class.boost::detail::adj_list_edge_iterator"** %t0.addr
  %1 = load %"class.boost::detail::adj_list_edge_iterator"** %t1.addr
  call void @_ZN5boost6tuples5tupleIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEESQ_NS0_9null_typeESR_SR_SR_SR_SR_SR_SR_EC2ESQ_SQ_(%"class.boost::tuples::tuple.17"* %this1, %"class.boost::detail::adj_list_edge_iterator"* %0, %"class.boost::detail::adj_list_edge_iterator"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEESQ_NS0_9null_typeESR_SR_SR_SR_SR_SR_SR_EC2ESQ_SQ_(%"class.boost::tuples::tuple.17"* %this, %"class.boost::detail::adj_list_edge_iterator"* %t0, %"class.boost::detail::adj_list_edge_iterator"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.17"*, align 4
  %t0.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %t1.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp2 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp3 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp4 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp5 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp6 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp7 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp8 = alloca %"struct.boost::tuples::null_type", align 1
  store %"class.boost::tuples::tuple.17"* %this, %"class.boost::tuples::tuple.17"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t0, %"class.boost::detail::adj_list_edge_iterator"** %t0.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t1, %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.17"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.17"* %this1 to %"struct.boost::tuples::cons.18"*
  %1 = load %"class.boost::detail::adj_list_edge_iterator"** %t0.addr, align 4
  %2 = load %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp2)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp3)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp4)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp5)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp6)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp7)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp8)
  call void @_ZN5boost6tuples4consIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEENS1_ISQ_NS0_9null_typeEEEEC2ISP_SP_KSR_SV_SV_SV_SV_SV_SV_SV_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.18"* %0, %"class.boost::detail::adj_list_edge_iterator"* %1, %"class.boost::detail::adj_list_edge_iterator"* %2, %"struct.boost::tuples::null_type"* %ref.tmp, %"struct.boost::tuples::null_type"* %ref.tmp2, %"struct.boost::tuples::null_type"* %ref.tmp3, %"struct.boost::tuples::null_type"* %ref.tmp4, %"struct.boost::tuples::null_type"* %ref.tmp5, %"struct.boost::tuples::null_type"* %ref.tmp6, %"struct.boost::tuples::null_type"* %ref.tmp7, %"struct.boost::tuples::null_type"* %ref.tmp8)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEENS1_ISQ_NS0_9null_typeEEEEC2ISP_SP_KSR_SV_SV_SV_SV_SV_SV_SV_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.18"* %this, %"class.boost::detail::adj_list_edge_iterator"* %t1, %"class.boost::detail::adj_list_edge_iterator"* %t2, %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"* %t10) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.18"*, align 4
  %t1.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %t2.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %t3.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t4.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t5.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t6.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t7.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t8.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t9.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t10.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  store %"struct.boost::tuples::cons.18"* %this, %"struct.boost::tuples::cons.18"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t1, %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t2, %"class.boost::detail::adj_list_edge_iterator"** %t2.addr, align 4
  store %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"** %t3.addr, align 4
  store %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"** %t4.addr, align 4
  store %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"** %t5.addr, align 4
  store %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"** %t6.addr, align 4
  store %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"** %t7.addr, align 4
  store %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"** %t8.addr, align 4
  store %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"** %t9.addr, align 4
  store %"struct.boost::tuples::null_type"* %t10, %"struct.boost::tuples::null_type"** %t10.addr, align 4
  %this1 = load %"struct.boost::tuples::cons.18"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::tuples::cons.18"* %this1, i32 0, i32 0
  %1 = load %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %1, %"class.boost::detail::adj_list_edge_iterator"** %0, align 4
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.18"* %this1, i32 0, i32 1
  %2 = load %"class.boost::detail::adj_list_edge_iterator"** %t2.addr, align 4
  %3 = load %"struct.boost::tuples::null_type"** %t3.addr, align 4
  %4 = load %"struct.boost::tuples::null_type"** %t4.addr, align 4
  %5 = load %"struct.boost::tuples::null_type"** %t5.addr, align 4
  %6 = load %"struct.boost::tuples::null_type"** %t6.addr, align 4
  %7 = load %"struct.boost::tuples::null_type"** %t7.addr, align 4
  %8 = load %"struct.boost::tuples::null_type"** %t8.addr, align 4
  %9 = load %"struct.boost::tuples::null_type"** %t9.addr, align 4
  %10 = load %"struct.boost::tuples::null_type"** %t10.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples4consIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEENS0_9null_typeEEC1ISP_EERT_RKSR_SX_SX_SX_SX_SX_SX_SX_SX_(%"struct.boost::tuples::cons.19"* %tail, %"class.boost::detail::adj_list_edge_iterator"* %2, %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* noalias sret %agg.result) nounwind inlinehint {
entry:
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEENS0_9null_typeEEC1ISP_EERT_RKSR_SX_SX_SX_SX_SX_SX_SX_SX_(%"struct.boost::tuples::cons.19"* %this, %"class.boost::detail::adj_list_edge_iterator"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.19"*, align 4
  %t1.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.19"* %this, %"struct.boost::tuples::cons.19"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t1, %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.19"** %this.addr
  %9 = load %"class.boost::detail::adj_list_edge_iterator"** %t1.addr
  %10 = load %"struct.boost::tuples::null_type"** %.addr
  %11 = load %"struct.boost::tuples::null_type"** %.addr1
  %12 = load %"struct.boost::tuples::null_type"** %.addr2
  %13 = load %"struct.boost::tuples::null_type"** %.addr3
  %14 = load %"struct.boost::tuples::null_type"** %.addr4
  %15 = load %"struct.boost::tuples::null_type"** %.addr5
  %16 = load %"struct.boost::tuples::null_type"** %.addr6
  %17 = load %"struct.boost::tuples::null_type"** %.addr7
  %18 = load %"struct.boost::tuples::null_type"** %.addr8
  call void @_ZN5boost6tuples4consIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEENS0_9null_typeEEC2ISP_EERT_RKSR_SX_SX_SX_SX_SX_SX_SX_SX_(%"struct.boost::tuples::cons.19"* %this9, %"class.boost::detail::adj_list_edge_iterator"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %11, %"struct.boost::tuples::null_type"* %12, %"struct.boost::tuples::null_type"* %13, %"struct.boost::tuples::null_type"* %14, %"struct.boost::tuples::null_type"* %15, %"struct.boost::tuples::null_type"* %16, %"struct.boost::tuples::null_type"* %17, %"struct.boost::tuples::null_type"* %18)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS2_13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESC_SD_SC_SL_EEEENS0_9null_typeEEC2ISP_EERT_RKSR_SX_SX_SX_SX_SX_SX_SX_SX_(%"struct.boost::tuples::cons.19"* %this, %"class.boost::detail::adj_list_edge_iterator"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.19"*, align 4
  %t1.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.19"* %this, %"struct.boost::tuples::cons.19"** %this.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %t1, %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.19"** %this.addr
  %9 = getelementptr inbounds %"struct.boost::tuples::cons.19"* %this9, i32 0, i32 0
  %10 = load %"class.boost::detail::adj_list_edge_iterator"** %t1.addr, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %10, %"class.boost::detail::adj_list_edge_iterator"** %9, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEEC2Ev(%"class.boost::detail::adj_list_edge_iterator"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %vBegin = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 0
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %vBegin)
  %vCurr = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 1
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %vCurr)
  %vEnd = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 2
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %vEnd)
  %edges = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  call void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EEC1Ev(%"class.boost::optional"* %edges)
  ret void
}

define linkonce_odr i32 @_ZN5boost20iterator_core_access11dereferenceINS_12range_detail16integer_iteratorIjEEEENT_9referenceERKS5_(%"class.boost::range_detail::integer_iterator"* %f) align 2 {
entry:
  %f.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %f, %"class.boost::range_detail::integer_iterator"** %f.addr, align 4
  %0 = load %"class.boost::range_detail::integer_iterator"** %f.addr, align 4
  %call = call i32 @_ZNK5boost12range_detail16integer_iteratorIjE11dereferenceEv(%"class.boost::range_detail::integer_iterator"* %0)
  ret i32 %call
}

define linkonce_odr %"class.boost::range_detail::integer_iterator"* @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade"*, align 4
  store %"class.boost::iterator_facade"* %this, %"class.boost::iterator_facade"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade"** %this.addr
  %0 = bitcast %"class.boost::iterator_facade"* %this1 to %"class.boost::range_detail::integer_iterator"*
  ret %"class.boost::range_detail::integer_iterator"* %0
}

define linkonce_odr i32 @_ZNK5boost12range_detail16integer_iteratorIjE11dereferenceEv(%"class.boost::range_detail::integer_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %0 = load i32* %m_value, align 4
  ret i32 %0
}

define linkonce_odr void @_ZN5boost20iterator_core_access9incrementINS_12range_detail16integer_iteratorIjEEEEvRT_(%"class.boost::range_detail::integer_iterator"* %f) align 2 {
entry:
  %f.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %f, %"class.boost::range_detail::integer_iterator"** %f.addr, align 4
  %0 = load %"class.boost::range_detail::integer_iterator"** %f.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjE9incrementEv(%"class.boost::range_detail::integer_iterator"* %0)
  ret void
}

define linkonce_odr %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade"*, align 4
  store %"class.boost::iterator_facade"* %this, %"class.boost::iterator_facade"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade"** %this.addr
  %0 = bitcast %"class.boost::iterator_facade"* %this1 to %"class.boost::range_detail::integer_iterator"*
  ret %"class.boost::range_detail::integer_iterator"* %0
}

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjE9incrementEv(%"class.boost::range_detail::integer_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %0 = load i32* %m_value, align 4
  %inc = add i32 %0, 1
  store i32 %inc, i32* %m_value, align 4
  ret void
}

define linkonce_odr zeroext i1 @_ZN5boost20iterator_core_access5equalINS_12range_detail16integer_iteratorIjEES4_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"class.boost::range_detail::integer_iterator"* %f1, %"class.boost::range_detail::integer_iterator"* %f2) align 2 {
entry:
  %f1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %f2.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %0 = alloca %"struct.mpl_::bool_.30", align 1
  store %"class.boost::range_detail::integer_iterator"* %f1, %"class.boost::range_detail::integer_iterator"** %f1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %f2, %"class.boost::range_detail::integer_iterator"** %f2.addr, align 4
  %1 = load %"class.boost::range_detail::integer_iterator"** %f1.addr, align 4
  %2 = load %"class.boost::range_detail::integer_iterator"** %f2.addr, align 4
  %call = call zeroext i1 @_ZNK5boost12range_detail16integer_iteratorIjE5equalERKS2_(%"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %2)
  ret i1 %call
}

define linkonce_odr zeroext i1 @_ZNK5boost12range_detail16integer_iteratorIjE5equalERKS2_(%"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"* %other) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %other.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %other, %"class.boost::range_detail::integer_iterator"** %other.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %0 = load i32* %m_value, align 4
  %1 = load %"class.boost::range_detail::integer_iterator"** %other.addr, align 4
  %m_value2 = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %1, i32 0, i32 0
  %2 = load i32* %m_value2, align 4
  %cmp = icmp eq i32 %0, %2
  ret i1 %cmp
}

define linkonce_odr void @_ZSt9make_pairIN5boost12range_detail16integer_iteratorIjEES3_ESt4pairIT_T0_ES5_S6_(%"struct.std::pair.15"* noalias sret %agg.result, %"class.boost::range_detail::integer_iterator"* byval align 4 %__x, %"class.boost::range_detail::integer_iterator"* byval align 4 %__y) inlinehint {
entry:
  call void @_ZNSt4pairIN5boost12range_detail16integer_iteratorIjEES3_EC1ERKS3_S6_(%"struct.std::pair.15"* %agg.result, %"class.boost::range_detail::integer_iterator"* %__x, %"class.boost::range_detail::integer_iterator"* %__y)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost12range_detail16integer_iteratorIjEES3_EC1ERKS3_S6_(%"struct.std::pair.15"* %this, %"class.boost::range_detail::integer_iterator"* %__a, %"class.boost::range_detail::integer_iterator"* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.15"*, align 4
  %__a.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %__b.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"struct.std::pair.15"* %this, %"struct.std::pair.15"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %__a, %"class.boost::range_detail::integer_iterator"** %__a.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %__b, %"class.boost::range_detail::integer_iterator"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.15"** %this.addr
  %0 = load %"class.boost::range_detail::integer_iterator"** %__a.addr
  %1 = load %"class.boost::range_detail::integer_iterator"** %__b.addr
  call void @_ZNSt4pairIN5boost12range_detail16integer_iteratorIjEES3_EC2ERKS3_S6_(%"struct.std::pair.15"* %this1, %"class.boost::range_detail::integer_iterator"* %0, %"class.boost::range_detail::integer_iterator"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost12range_detail16integer_iteratorIjEES3_EC2ERKS3_S6_(%"struct.std::pair.15"* %this, %"class.boost::range_detail::integer_iterator"* %__a, %"class.boost::range_detail::integer_iterator"* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.15"*, align 4
  %__a.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %__b.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"struct.std::pair.15"* %this, %"struct.std::pair.15"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %__a, %"class.boost::range_detail::integer_iterator"** %__a.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %__b, %"class.boost::range_detail::integer_iterator"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.15"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.15"* %this1, i32 0, i32 0
  %0 = load %"class.boost::range_detail::integer_iterator"** %__a.addr, align 4
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %first to i8*
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %0 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  %second = getelementptr inbounds %"struct.std::pair.15"* %this1, i32 0, i32 1
  %3 = load %"class.boost::range_detail::integer_iterator"** %__b.addr, align 4
  %4 = bitcast %"class.boost::range_detail::integer_iterator"* %second to i8*
  %5 = bitcast %"class.boost::range_detail::integer_iterator"* %3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EC1ES5_S5_(%"class.boost::tuples::tuple"* %this, %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple"*, align 4
  %t0.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::tuples::tuple"* %this, %"class.boost::tuples::tuple"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple"** %this.addr
  %0 = load %"class.boost::range_detail::integer_iterator"** %t0.addr
  %1 = load %"class.boost::range_detail::integer_iterator"** %t1.addr
  call void @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EC2ES5_S5_(%"class.boost::tuples::tuple"* %this1, %"class.boost::range_detail::integer_iterator"* %0, %"class.boost::range_detail::integer_iterator"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EC2ES5_S5_(%"class.boost::tuples::tuple"* %this, %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple"*, align 4
  %t0.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp2 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp3 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp4 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp5 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp6 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp7 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp8 = alloca %"struct.boost::tuples::null_type", align 1
  store %"class.boost::tuples::tuple"* %this, %"class.boost::tuples::tuple"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple"* %this1 to %"struct.boost::tuples::cons"*
  %1 = load %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  %2 = load %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp2)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp3)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp4)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp5)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp6)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp7)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp8)
  call void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS1_IS5_NS0_9null_typeEEEEC2IS4_S4_KS6_SA_SA_SA_SA_SA_SA_SA_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons"* %0, %"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %2, %"struct.boost::tuples::null_type"* %ref.tmp, %"struct.boost::tuples::null_type"* %ref.tmp2, %"struct.boost::tuples::null_type"* %ref.tmp3, %"struct.boost::tuples::null_type"* %ref.tmp4, %"struct.boost::tuples::null_type"* %ref.tmp5, %"struct.boost::tuples::null_type"* %ref.tmp6, %"struct.boost::tuples::null_type"* %ref.tmp7, %"struct.boost::tuples::null_type"* %ref.tmp8)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS1_IS5_NS0_9null_typeEEEEC2IS4_S4_KS6_SA_SA_SA_SA_SA_SA_SA_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons"* %this, %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"* %t2, %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"* %t10) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t2.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t3.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t4.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t5.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t6.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t7.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t8.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t9.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t10.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  store %"struct.boost::tuples::cons"* %this, %"struct.boost::tuples::cons"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t2, %"class.boost::range_detail::integer_iterator"** %t2.addr, align 4
  store %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"** %t3.addr, align 4
  store %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"** %t4.addr, align 4
  store %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"** %t5.addr, align 4
  store %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"** %t6.addr, align 4
  store %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"** %t7.addr, align 4
  store %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"** %t8.addr, align 4
  store %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"** %t9.addr, align 4
  store %"struct.boost::tuples::null_type"* %t10, %"struct.boost::tuples::null_type"** %t10.addr, align 4
  %this1 = load %"struct.boost::tuples::cons"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::tuples::cons"* %this1, i32 0, i32 0
  %1 = load %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"** %0, align 4
  %tail = getelementptr inbounds %"struct.boost::tuples::cons"* %this1, i32 0, i32 1
  %2 = load %"class.boost::range_detail::integer_iterator"** %t2.addr, align 4
  %3 = load %"struct.boost::tuples::null_type"** %t3.addr, align 4
  %4 = load %"struct.boost::tuples::null_type"** %t4.addr, align 4
  %5 = load %"struct.boost::tuples::null_type"** %t5.addr, align 4
  %6 = load %"struct.boost::tuples::null_type"** %t6.addr, align 4
  %7 = load %"struct.boost::tuples::null_type"** %t7.addr, align 4
  %8 = load %"struct.boost::tuples::null_type"** %t8.addr, align 4
  %9 = load %"struct.boost::tuples::null_type"** %t9.addr, align 4
  %10 = load %"struct.boost::tuples::null_type"** %t10.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS0_9null_typeEEC1IS4_EERT_RKS6_SC_SC_SC_SC_SC_SC_SC_SC_(%"struct.boost::tuples::cons.14"* %tail, %"class.boost::range_detail::integer_iterator"* %2, %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS0_9null_typeEEC1IS4_EERT_RKS6_SC_SC_SC_SC_SC_SC_SC_SC_(%"struct.boost::tuples::cons.14"* %this, %"class.boost::range_detail::integer_iterator"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.14"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.14"* %this, %"struct.boost::tuples::cons.14"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.14"** %this.addr
  %9 = load %"class.boost::range_detail::integer_iterator"** %t1.addr
  %10 = load %"struct.boost::tuples::null_type"** %.addr
  %11 = load %"struct.boost::tuples::null_type"** %.addr1
  %12 = load %"struct.boost::tuples::null_type"** %.addr2
  %13 = load %"struct.boost::tuples::null_type"** %.addr3
  %14 = load %"struct.boost::tuples::null_type"** %.addr4
  %15 = load %"struct.boost::tuples::null_type"** %.addr5
  %16 = load %"struct.boost::tuples::null_type"** %.addr6
  %17 = load %"struct.boost::tuples::null_type"** %.addr7
  %18 = load %"struct.boost::tuples::null_type"** %.addr8
  call void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS0_9null_typeEEC2IS4_EERT_RKS6_SC_SC_SC_SC_SC_SC_SC_SC_(%"struct.boost::tuples::cons.14"* %this9, %"class.boost::range_detail::integer_iterator"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %11, %"struct.boost::tuples::null_type"* %12, %"struct.boost::tuples::null_type"* %13, %"struct.boost::tuples::null_type"* %14, %"struct.boost::tuples::null_type"* %15, %"struct.boost::tuples::null_type"* %16, %"struct.boost::tuples::null_type"* %17, %"struct.boost::tuples::null_type"* %18)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS0_9null_typeEEC2IS4_EERT_RKS6_SC_SC_SC_SC_SC_SC_SC_SC_(%"struct.boost::tuples::cons.14"* %this, %"class.boost::range_detail::integer_iterator"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.14"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.14"* %this, %"struct.boost::tuples::cons.14"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.14"** %this.addr
  %9 = getelementptr inbounds %"struct.boost::tuples::cons.14"* %this9, i32 0, i32 0
  %10 = load %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %10, %"class.boost::range_detail::integer_iterator"** %9, align 4
  ret void
}

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjEC2Ev(%"class.boost::range_detail::integer_iterator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %this1 to %"class.boost::iterator_facade"*
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  store i32 0, i32* %m_value, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail18dijkstra_dispatch1INS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EEPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS9_S8_EENS_26vec_adj_list_vertex_id_mapIS6_jEENS_16bgl_named_paramsISB_NS_17vertex_distance_tENSK_IPjNS_20vertex_predecessor_tES6_EEEEEEvRKT_NS_12graph_traitsISQ_E17vertex_descriptorET0_T1_T2_RKT3_(%"class.boost::adjacency_list"* %g, i32 %s, i32* %distance, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %weight, %"struct.boost::bgl_named_params"* %params) inlinehint {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %distance.addr = alloca i32*, align 4
  %index_map = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %params.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %n = alloca i32, align 4
  %distance_map = alloca %"class.std::vector.8", align 4
  %ref.tmp = alloca i32, align 4
  %ref.tmp2 = alloca %"class.std::allocator.10", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp3 = alloca %"class.boost::iterator_property_map", align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %agg.tmp6 = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %agg.tmp12 = alloca %"struct.boost::adj_list_edge_property_map.33", align 4
  %agg.tmp13 = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32* %distance, i32** %distance.addr, align 4
  store %"struct.boost::bgl_named_params"* %params, %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call = call zeroext i1 @_ZN5boost16is_default_paramIPiEEbRKT_(i32** %distance.addr)
  br i1 %call, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = bitcast %"class.boost::adjacency_list"* %0 to %"struct.boost::adj_list_helper"*
  %call1 = call i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISG_T0_EE(%"struct.boost::adj_list_helper"* %1)
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32 [ %call1, %cond.true ], [ 1, %cond.false ]
  store i32 %cond, i32* %n, align 4
  %2 = load i32* %n, align 4
  store i32 0, i32* %ref.tmp, align 4
  call void @_ZNSaIiEC1Ev(%"class.std::allocator.10"* %ref.tmp2) nounwind
  invoke void @_ZNSt6vectorIiSaIiEEC1EjRKiRKS0_(%"class.std::vector.8"* %distance_map, i32 %2, i32* %ref.tmp, %"class.std::allocator.10"* %ref.tmp2)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %cond.end
  call void @_ZNSaIiED1Ev(%"class.std::allocator.10"* %ref.tmp2) nounwind
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = load i32* %s.addr, align 4
  invoke void @_ZNSt6vectorIiSaIiEE5beginEv(%"class.__gnu_cxx::__normal_iterator"* sret %agg.tmp, %"class.std::vector.8"* %distance_map)
          to label %invoke.cont5 unwind label %lpad4

invoke.cont5:                                     ; preds = %invoke.cont
  %call8 = invoke i32* @_ZNSt6vectorIiSaIiEEixEj(%"class.std::vector.8"* %distance_map, i32 0)
          to label %invoke.cont7 unwind label %lpad4

invoke.cont7:                                     ; preds = %invoke.cont5
  %5 = load i32* %call8
  invoke void @_ZN5boost26make_iterator_property_mapIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_21iterator_property_mapIT_T1_T0_RSE_EESC_SD_SE_(%"class.boost::iterator_property_map"* sret %ref.tmp3, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp, i32 %5)
          to label %invoke.cont9 unwind label %lpad4

invoke.cont9:                                     ; preds = %invoke.cont7
  %call11 = invoke i32** @_ZN5boost12choose_paramIPiNS_21iterator_property_mapIN9__gnu_cxx17__normal_iteratorIS1_St6vectorIiSaIiEEEENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEiRiEEEERKT_SG_RKT0_(i32** %distance.addr, %"class.boost::iterator_property_map"* %ref.tmp3)
          to label %invoke.cont10 unwind label %lpad4

invoke.cont10:                                    ; preds = %invoke.cont9
  %6 = load i32** %call11
  %7 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %agg.tmp12 to i8*
  %8 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %weight to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %7, i8* %8, i32 4, i32 4, i1 false)
  %9 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  invoke void @_ZN5boost6detail18dijkstra_dispatch2INS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EEPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS9_S8_EENS_26vec_adj_list_vertex_id_mapIS6_jEENS_16bgl_named_paramsISB_NS_17vertex_distance_tENSK_IPjNS_20vertex_predecessor_tES6_EEEEEEvRKT_NS_12graph_traitsISQ_E17vertex_descriptorET0_T1_T2_RKT3_(%"class.boost::adjacency_list"* %3, i32 %4, i32* %6, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %agg.tmp12, %"struct.boost::bgl_named_params"* %9)
          to label %invoke.cont14 unwind label %lpad4

invoke.cont14:                                    ; preds = %invoke.cont10
  call void @_ZNSt6vectorIiSaIiEED1Ev(%"class.std::vector.8"* %distance_map)
  ret void

lpad:                                             ; preds = %cond.end
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %11 = extractvalue { i8*, i32 } %10, 0
  store i8* %11, i8** %exn.slot
  %12 = extractvalue { i8*, i32 } %10, 1
  store i32 %12, i32* %ehselector.slot
  call void @_ZNSaIiED1Ev(%"class.std::allocator.10"* %ref.tmp2) nounwind
  br label %eh.resume

lpad4:                                            ; preds = %invoke.cont10, %invoke.cont9, %invoke.cont7, %invoke.cont5, %invoke.cont
  %13 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %14 = extractvalue { i8*, i32 } %13, 0
  store i8* %14, i8** %exn.slot
  %15 = extractvalue { i8*, i32 } %13, 1
  store i32 %15, i32* %ehselector.slot
  invoke void @_ZNSt6vectorIiSaIiEED1Ev(%"class.std::vector.8"* %distance_map)
          to label %invoke.cont15 unwind label %terminate.lpad

invoke.cont15:                                    ; preds = %lpad4
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont15, %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val16 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val16

terminate.lpad:                                   ; preds = %lpad4
  %16 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr i32** @_ZN5boost9get_paramINS_17vertex_distance_tENS_16bgl_named_paramsIPiS1_NS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSB_SA_(%"struct.boost::bgl_named_params"* %p, i32) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %.addr = alloca i32, align 4
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %call = call i32** @_ZN5boost22lookup_named_param_defINS_17vertex_distance_tENS_16bgl_named_paramsIPiS1_NS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS8_RKS9_(%"struct.boost::bgl_named_params"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret i32** %call
}

define linkonce_odr void @_ZN5boost17choose_const_pmapINS_15param_not_foundENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES8_EENS_6detail18choose_impl_resultIN4mpl_5bool_ILb1EEET0_T_T1_E4typeERKSH_RKSG_SI_(%"struct.boost::adj_list_edge_property_map.33"* noalias sret %agg.result, %"struct.boost::param_not_found"* %p, %"class.boost::adjacency_list"* %g, i32 %tag) {
entry:
  %p.addr = alloca %"struct.boost::param_not_found"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag.addr = alloca i32, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_.30", align 1
  store %"struct.boost::param_not_found"* %p, %"struct.boost::param_not_found"** %p.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %p.addr, align 4
  %2 = load i32* %tag.addr, align 4
  call void @_ZN5boost6detail18choose_impl_helperILb0EE1fINS_15param_not_foundENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS9_EES9_S6_EESB_EENS_12property_mapINS_12remove_constIT0_E4typeET1_E10const_typeEN4mpl_5bool_ILb1EEERKSG_RKT_SJ_(%"struct.boost::adj_list_edge_property_map.33"* sret %agg.result, %"class.boost::adjacency_list"* %0, %"struct.boost::param_not_found"* %1, i32 %2)
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_13edge_weight_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %p, i32) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %.addr = alloca i32, align 4
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_13edge_weight_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr void @_ZN5boost17choose_const_pmapINS_15param_not_foundENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_14vertex_index_tEEENS_6detail18choose_impl_resultIN4mpl_5bool_ILb1EEET0_T_T1_E4typeERKSI_RKSH_SJ_(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, %"struct.boost::param_not_found"* %p, %"class.boost::adjacency_list"* %g, i32 %tag) {
entry:
  %p.addr = alloca %"struct.boost::param_not_found"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag.addr = alloca i32, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_.30", align 1
  store %"struct.boost::param_not_found"* %p, %"struct.boost::param_not_found"** %p.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %p.addr, align 4
  %2 = load i32* %tag.addr, align 4
  call void @_ZN5boost6detail18choose_impl_helperILb0EE1fINS_15param_not_foundENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS9_EES9_S6_EENS_14vertex_index_tEEENS_12property_mapINS_12remove_constIT0_E4typeET1_E10const_typeEN4mpl_5bool_ILb1EEERKSH_RKT_SK_(%"struct.boost::vec_adj_list_vertex_id_map"* sret %agg.result, %"class.boost::adjacency_list"* %0, %"struct.boost::param_not_found"* %1, i32 %2)
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14vertex_index_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %p, i32) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %.addr = alloca i32, align 4
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.13"* %p, %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

define linkonce_odr void @_ZN5boost6detail18choose_impl_helperILb0EE1fINS_15param_not_foundENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS9_EES9_S6_EENS_14vertex_index_tEEENS_12property_mapINS_12remove_constIT0_E4typeET1_E10const_typeEN4mpl_5bool_ILb1EEERKSH_RKT_SK_(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, %"class.boost::adjacency_list"* %g, %"struct.boost::param_not_found"*, i32 %tag) align 2 {
entry:
  %1 = alloca %"struct.mpl_::bool_.30", align 1
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  %tag.addr = alloca i32, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %2 = load i32* %tag.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"class.boost::adjacency_list"* %3 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost3getINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EENS_14vertex_index_tEEENS_12property_mapINT_10graph_typeET1_E10const_typeESK_RKNS_15adj_list_helperISI_T0_EE(%"struct.boost::vec_adj_list_vertex_id_map"* sret %agg.result, i32 %2, %"struct.boost::adj_list_helper"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost3getINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EENS_14vertex_index_tEEENS_12property_mapINT_10graph_typeET1_E10const_typeESK_RKNS_15adj_list_helperISI_T0_EE(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, i32 %p, %"struct.boost::adj_list_helper"* %g) inlinehint {
entry:
  %p.addr = alloca i32, align 4
  %g.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %agg.tmp = alloca %"struct.boost::vertex_property_tag", align 1
  store i32 %p, i32* %p.addr, align 4
  store %"struct.boost::adj_list_helper"* %g, %"struct.boost::adj_list_helper"** %g.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g.addr, align 4
  %1 = load i32* %p.addr, align 4
  call void @_ZN5boost6detail12get_dispatchINS0_12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EENS_14vertex_index_tEEENS_12property_mapINT_10graph_typeET1_E10const_typeERKNS_15adj_list_helperISI_T0_EESK_NS_19vertex_property_tagE(%"struct.boost::vec_adj_list_vertex_id_map"* sret %agg.result, %"struct.boost::adj_list_helper"* %0, i32 %1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12get_dispatchINS0_12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EENS_14vertex_index_tEEENS_12property_mapINT_10graph_typeET1_E10const_typeERKNS_15adj_list_helperISI_T0_EESK_NS_19vertex_property_tagE(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, %"struct.boost::adj_list_helper"* %g, i32 %p) inlinehint {
entry:
  %g.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %p.addr = alloca i32, align 4
  %0 = alloca %"struct.boost::vertex_property_tag", align 1
  %cg = alloca %"class.boost::adjacency_list"*, align 4
  %ref.tmp = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::adj_list_helper"* %g, %"struct.boost::adj_list_helper"** %g.addr, align 4
  store i32 %p, i32* %p.addr, align 4
  %1 = load %"struct.boost::adj_list_helper"** %g.addr, align 4
  %2 = bitcast %"struct.boost::adj_list_helper"* %1 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %cg, align 4
  %3 = load %"class.boost::adjacency_list"** %cg, align 4
  store %"class.boost::adjacency_list"* %3, %"class.boost::adjacency_list"** %ref.tmp, align 4
  %4 = load i32* %p.addr, align 4
  call void @_ZN5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEC1IPKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES1_NS_8propertyINS_13edge_weight_tEiS1_EES1_S5_EEEERKT_NS_14vertex_index_tE(%"struct.boost::vec_adj_list_vertex_id_map"* %agg.result, %"class.boost::adjacency_list"** %ref.tmp, i32 %4)
  ret void
}

define linkonce_odr void @_ZN5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEC1IPKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES1_NS_8propertyINS_13edge_weight_tEiS1_EES1_S5_EEEERKT_NS_14vertex_index_tE(%"struct.boost::vec_adj_list_vertex_id_map"* %this, %"class.boost::adjacency_list"**, i32) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"**, align 4
  %.addr1 = alloca i32, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %this, %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr, align 4
  store %"class.boost::adjacency_list"** %0, %"class.boost::adjacency_list"*** %.addr, align 4
  store i32 %1, i32* %.addr1, align 4
  %this2 = load %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr
  %2 = load %"class.boost::adjacency_list"*** %.addr
  %3 = load i32* %.addr1, align 4
  call void @_ZN5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEC2IPKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES1_NS_8propertyINS_13edge_weight_tEiS1_EES1_S5_EEEERKT_NS_14vertex_index_tE(%"struct.boost::vec_adj_list_vertex_id_map"* %this2, %"class.boost::adjacency_list"** %2, i32 %3)
  ret void
}

define linkonce_odr void @_ZN5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEC2IPKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES1_NS_8propertyINS_13edge_weight_tEiS1_EES1_S5_EEEERKT_NS_14vertex_index_tE(%"struct.boost::vec_adj_list_vertex_id_map"* %this, %"class.boost::adjacency_list"**, i32) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"**, align 4
  %.addr1 = alloca i32, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %this, %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr, align 4
  store %"class.boost::adjacency_list"** %0, %"class.boost::adjacency_list"*** %.addr, align 4
  store i32 %1, i32* %.addr1, align 4
  %this2 = load %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr
  %2 = bitcast %"struct.boost::vec_adj_list_vertex_id_map"* %this2 to %"struct.boost::put_get_helper.35"*
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_13edge_weight_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_13edge_weight_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_13edge_weight_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.13"* %p, %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_13edge_weight_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_13edge_weight_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

define linkonce_odr void @_ZN5boost6detail18choose_impl_helperILb0EE1fINS_15param_not_foundENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS9_EES9_S6_EESB_EENS_12property_mapINS_12remove_constIT0_E4typeET1_E10const_typeEN4mpl_5bool_ILb1EEERKSG_RKT_SJ_(%"struct.boost::adj_list_edge_property_map.33"* noalias sret %agg.result, %"class.boost::adjacency_list"* %g, %"struct.boost::param_not_found"*, i32 %tag) align 2 {
entry:
  %1 = alloca %"struct.mpl_::bool_.30", align 1
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  %tag.addr = alloca i32, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %2 = load i32* %tag.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"class.boost::adjacency_list"* %3 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost3getINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EES9_EENS_12property_mapINT_10graph_typeET1_E10const_typeESJ_RKNS_15adj_list_helperISH_T0_EE(%"struct.boost::adj_list_edge_property_map.33"* sret %agg.result, i32 %2, %"struct.boost::adj_list_helper"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost3getINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EES9_EENS_12property_mapINT_10graph_typeET1_E10const_typeESJ_RKNS_15adj_list_helperISH_T0_EE(%"struct.boost::adj_list_edge_property_map.33"* noalias sret %agg.result, i32 %p, %"struct.boost::adj_list_helper"* %g) inlinehint {
entry:
  %p.addr = alloca i32, align 4
  %g.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %agg.tmp = alloca %"struct.boost::edge_property_tag", align 1
  store i32 %p, i32* %p.addr, align 4
  store %"struct.boost::adj_list_helper"* %g, %"struct.boost::adj_list_helper"** %g.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g.addr, align 4
  %1 = load i32* %p.addr, align 4
  call void @_ZN5boost6detail12get_dispatchINS0_12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EES9_EENS_12property_mapINT_10graph_typeET1_E10const_typeERKNS_15adj_list_helperISH_T0_EESJ_NS_17edge_property_tagE(%"struct.boost::adj_list_edge_property_map.33"* sret %agg.result, %"struct.boost::adj_list_helper"* %0, i32 %1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12get_dispatchINS0_12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EES9_EENS_12property_mapINT_10graph_typeET1_E10const_typeERKNS_15adj_list_helperISH_T0_EESJ_NS_17edge_property_tagE(%"struct.boost::adj_list_edge_property_map.33"* noalias sret %agg.result, %"struct.boost::adj_list_helper"*, i32 %p) inlinehint {
entry:
  %.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %p.addr = alloca i32, align 4
  %1 = alloca %"struct.boost::edge_property_tag", align 1
  store %"struct.boost::adj_list_helper"* %0, %"struct.boost::adj_list_helper"** %.addr, align 4
  store i32 %p, i32* %p.addr, align 4
  %2 = load i32* %p.addr, align 4
  call void @_ZN5boost26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES5_EC1ES5_(%"struct.boost::adj_list_edge_property_map.33"* %agg.result, i32 %2)
  ret void
}

define linkonce_odr void @_ZN5boost26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES5_EC1ES5_(%"struct.boost::adj_list_edge_property_map.33"* %this, i32 %tag) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::adj_list_edge_property_map.33"*, align 4
  %tag.addr = alloca i32, align 4
  store %"struct.boost::adj_list_edge_property_map.33"* %this, %"struct.boost::adj_list_edge_property_map.33"** %this.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %this1 = load %"struct.boost::adj_list_edge_property_map.33"** %this.addr
  %0 = load i32* %tag.addr, align 4
  call void @_ZN5boost26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES5_EC2ES5_(%"struct.boost::adj_list_edge_property_map.33"* %this1, i32 %0)
  ret void
}

define linkonce_odr void @_ZN5boost26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES5_EC2ES5_(%"struct.boost::adj_list_edge_property_map.33"* %this, i32 %tag) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::adj_list_edge_property_map.33"*, align 4
  %tag.addr = alloca i32, align 4
  store %"struct.boost::adj_list_edge_property_map.33"* %this, %"struct.boost::adj_list_edge_property_map.33"** %this.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %this1 = load %"struct.boost::adj_list_edge_property_map.33"** %this.addr
  %0 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %this1 to %"struct.boost::put_get_helper.34"*
  %tag2 = getelementptr inbounds %"struct.boost::adj_list_edge_property_map.33"* %this1, i32 0, i32 0
  %1 = load i32* %tag.addr, align 4
  store i32 %1, i32* %tag2, align 4
  ret void
}

define linkonce_odr i32** @_ZN5boost22lookup_named_param_defINS_17vertex_distance_tENS_16bgl_named_paramsIPiS1_NS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS8_RKS9_(%"struct.boost::bgl_named_params"* %p, %"struct.boost::param_not_found"*) nounwind align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params"* %1, i32 0, i32 0
  ret i32** %m_value
}

define linkonce_odr zeroext i1 @_ZN5boost16is_default_paramIPiEEbRKT_(i32**) nounwind inlinehint {
entry:
  %.addr = alloca i32**, align 4
  store i32** %0, i32*** %.addr, align 4
  ret i1 false
}

define linkonce_odr void @_ZN5boost6detail18dijkstra_dispatch2INS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EEPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS9_S8_EENS_26vec_adj_list_vertex_id_mapIS6_jEENS_16bgl_named_paramsISB_NS_17vertex_distance_tENSK_IPjNS_20vertex_predecessor_tES6_EEEEEEvRKT_NS_12graph_traitsISQ_E17vertex_descriptorET0_T1_T2_RKT3_(%"class.boost::adjacency_list"* %g, i32 %s, i32* %distance, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %weight, %"struct.boost::bgl_named_params"* %params) inlinehint {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %distance.addr = alloca i32*, align 4
  %index_map = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %params.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %p_map = alloca %"class.boost::dummy_property_map", align 4
  %inf = alloca i32, align 4
  %agg.tmp = alloca %"struct.boost::distance_inf_t", align 1
  %ref.tmp = alloca i32, align 4
  %agg.tmp5 = alloca %"struct.boost::adj_list_edge_property_map.33", align 4
  %agg.tmp6 = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %agg.tmp7 = alloca %"struct.std::less", align 1
  %agg.tmp8 = alloca %"struct.boost::distance_compare_t", align 1
  %ref.tmp10 = alloca %"struct.std::less", align 1
  %agg.tmp11 = alloca %"struct.boost::closed_plus", align 4
  %agg.tmp12 = alloca %"struct.boost::distance_combine_t", align 1
  %ref.tmp14 = alloca %"struct.boost::closed_plus", align 4
  %agg.tmp15 = alloca %"struct.boost::distance_zero_t", align 1
  %ref.tmp17 = alloca i32, align 4
  %agg.tmp19 = alloca %"class.boost::dijkstra_visitor", align 4
  %ref.tmp21 = alloca %"class.boost::dijkstra_visitor", align 1
  %agg.tmp22 = alloca %"struct.boost::null_visitor", align 1
  %agg.tmp23 = alloca %"struct.boost::graph::detail::no_parameter", align 1
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32* %distance, i32** %distance.addr, align 4
  store %"struct.boost::bgl_named_params"* %params, %"struct.boost::bgl_named_params"** %params.addr, align 4
  call void @_ZN5boost18dummy_property_mapC1Ev(%"class.boost::dummy_property_map"* %p_map)
  %0 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14distance_inf_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %0)
  %call1 = call i32 @_ZNSt14numeric_limitsIiE3maxEv() nounwind
  store i32 %call1, i32* %ref.tmp, align 4
  %call2 = call i32 @_ZN5boost12choose_paramIiEET_RKNS_15param_not_foundERKS1_(%"struct.boost::param_not_found"* %call, i32* %ref.tmp)
  store i32 %call2, i32* %inf, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %2 = load i32* %s.addr, align 4
  %3 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call3 = call i32** @_ZN5boost9get_paramINS_20vertex_predecessor_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjS1_NS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSB_SA_(%"struct.boost::bgl_named_params"* %3, i32 0)
  %call4 = call i32** @_ZN5boost12choose_paramIPjNS_18dummy_property_mapEEERKT_S5_RKT0_(i32** %call3, %"class.boost::dummy_property_map"* %p_map)
  %4 = load i32** %call4
  %5 = load i32** %distance.addr, align 4
  %6 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %agg.tmp5 to i8*
  %7 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %weight to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 4, i32 4, i1 false)
  %8 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call9 = call %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_18distance_compare_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %8)
  call void @_ZN5boost12choose_paramISt4lessIiEEET_RKNS_15param_not_foundERKS3_(%"struct.std::less"* sret %agg.tmp7, %"struct.boost::param_not_found"* %call9, %"struct.std::less"* %ref.tmp10)
  %9 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call13 = call %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_18distance_combine_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %9)
  %10 = load i32* %inf, align 4
  call void @_ZN5boost11closed_plusIiEC1Ei(%"struct.boost::closed_plus"* %ref.tmp14, i32 %10)
  call void @_ZN5boost12choose_paramINS_11closed_plusIiEEEET_RKNS_15param_not_foundERKS3_(%"struct.boost::closed_plus"* sret %agg.tmp11, %"struct.boost::param_not_found"* %call13, %"struct.boost::closed_plus"* %ref.tmp14)
  %11 = load i32* %inf, align 4
  %12 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call16 = call %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_15distance_zero_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %12)
  store i32 0, i32* %ref.tmp17, align 4
  %call18 = call i32 @_ZN5boost12choose_paramIiEET_RKNS_15param_not_foundERKS1_(%"struct.boost::param_not_found"* %call16, i32* %ref.tmp17)
  %13 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  %call20 = call %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_15graph_visitor_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %13, i32 0)
  call void @_ZN5boost21make_dijkstra_visitorINS_12null_visitorEEENS_16dijkstra_visitorIT_EES3_(%"class.boost::dijkstra_visitor"* sret %ref.tmp21)
  call void @_ZN5boost12choose_paramINS_16dijkstra_visitorINS_12null_visitorEEEEET_RKNS_15param_not_foundERKS4_(%"class.boost::dijkstra_visitor"* sret %agg.tmp19, %"struct.boost::param_not_found"* %call20, %"class.boost::dijkstra_visitor"* %ref.tmp21)
  %14 = load %"struct.boost::bgl_named_params"** %params.addr, align 4
  call void @_ZN5boost23dijkstra_shortest_pathsINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_16dijkstra_visitorINS_12null_visitorEEEPjPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EENS_26vec_adj_list_vertex_id_mapIS5_jEESt4lessIiENS_11closed_plusIiEEiiSE_NS_17vertex_distance_tENS_16bgl_named_paramsISD_NS_20vertex_predecessor_tES5_EEEEvRKT_NS_12graph_traitsISV_E17vertex_descriptorET1_T2_T3_T4_T5_T6_T7_T8_T0_RKNSS_IT9_T10_T11_EENS_11enable_if_cIXsr19is_base_and_derivedINS_21vertex_list_graph_tagENSZ_18traversal_categoryEEE5valueENS_5graph6detail12no_parameterEE4typeE(%"class.boost::adjacency_list"* %1, i32 %2, i32* %4, i32* %5, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %agg.tmp5, %"struct.boost::closed_plus"* byval align 4 %agg.tmp11, i32 %11, i32 %call18, %"class.boost::dijkstra_visitor"* byval align 4 %agg.tmp19, %"struct.boost::bgl_named_params"* %14)
  ret void
}

define linkonce_odr i32** @_ZN5boost12choose_paramIPiNS_21iterator_property_mapIN9__gnu_cxx17__normal_iteratorIS1_St6vectorIiSaIiEEEENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEiRiEEEERKT_SG_RKT0_(i32** %param, %"class.boost::iterator_property_map"*) nounwind {
entry:
  %param.addr = alloca i32**, align 4
  %.addr = alloca %"class.boost::iterator_property_map"*, align 4
  store i32** %param, i32*** %param.addr, align 4
  store %"class.boost::iterator_property_map"* %0, %"class.boost::iterator_property_map"** %.addr, align 4
  %1 = load i32*** %param.addr, align 4
  ret i32** %1
}

define linkonce_odr void @_ZN5boost26make_iterator_property_mapIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_21iterator_property_mapIT_T1_T0_RSE_EESC_SD_SE_(%"class.boost::iterator_property_map"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %iter, i32) inlinehint {
entry:
  %id = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %.addr = alloca i32, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  store i32 %0, i32* %.addr, align 4
  call void @_ZN5boost17function_requiresINS_27RandomAccessIteratorConceptIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEEEEvPT_(%"struct.boost::RandomAccessIteratorConcept"* null)
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator"* %agg.tmp to i8*
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator"* %iter to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  call void @_ZN5boost21iterator_property_mapIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEiRiEC1ES7_RKSA_(%"class.boost::iterator_property_map"* %agg.result, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp, %"struct.boost::vec_adj_list_vertex_id_map"* %id)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIiSaIiEE5beginEv(%"class.__gnu_cxx::__normal_iterator"* noalias sret %agg.result, %"class.std::vector.8"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.8"*, align 4
  store %"class.std::vector.8"* %this, %"class.std::vector.8"** %this.addr, align 4
  %this1 = load %"class.std::vector.8"** %this.addr
  %0 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.9"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  call void @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC1ERKS1_(%"class.__gnu_cxx::__normal_iterator"* %agg.result, i32** %_M_start)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC1ERKS1_(%"class.__gnu_cxx::__normal_iterator"* %this, i32** %__i) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %__i.addr = alloca i32**, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  store i32** %__i, i32*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  %0 = load i32*** %__i.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC2ERKS1_(%"class.__gnu_cxx::__normal_iterator"* %this1, i32** %0)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC2ERKS1_(%"class.__gnu_cxx::__normal_iterator"* %this, i32** %__i) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %__i.addr = alloca i32**, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  store i32** %__i, i32*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator"* %this1, i32 0, i32 0
  %0 = load i32*** %__i.addr, align 4
  %1 = load i32** %0, align 4
  store i32* %1, i32** %_M_current, align 4
  ret void
}

define linkonce_odr void @_ZN5boost17function_requiresINS_27RandomAccessIteratorConceptIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEEEEvPT_(%"struct.boost::RandomAccessIteratorConcept"*) nounwind inlinehint {
entry:
  %.addr = alloca %"struct.boost::RandomAccessIteratorConcept"*, align 4
  store %"struct.boost::RandomAccessIteratorConcept"* %0, %"struct.boost::RandomAccessIteratorConcept"** %.addr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost21iterator_property_mapIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEiRiEC1ES7_RKSA_(%"class.boost::iterator_property_map"* %this, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %cc, %"struct.boost::vec_adj_list_vertex_id_map"* %_id) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_property_map"*, align 4
  %_id.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store %"class.boost::iterator_property_map"* %this, %"class.boost::iterator_property_map"** %this.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %_id, %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr, align 4
  %this1 = load %"class.boost::iterator_property_map"** %this.addr
  %0 = load %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr
  call void @_ZN5boost21iterator_property_mapIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEiRiEC2ES7_RKSA_(%"class.boost::iterator_property_map"* %this1, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %cc, %"struct.boost::vec_adj_list_vertex_id_map"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost21iterator_property_mapIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEiRiEC2ES7_RKSA_(%"class.boost::iterator_property_map"* %this, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %cc, %"struct.boost::vec_adj_list_vertex_id_map"* %_id) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_property_map"*, align 4
  %_id.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store %"class.boost::iterator_property_map"* %this, %"class.boost::iterator_property_map"** %this.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %_id, %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr, align 4
  %this1 = load %"class.boost::iterator_property_map"** %this.addr
  %0 = bitcast %"class.boost::iterator_property_map"* %this1 to %"struct.boost::put_get_helper.36"*
  %iter = getelementptr inbounds %"class.boost::iterator_property_map"* %this1, i32 0, i32 0
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator"* %iter to i8*
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator"* %cc to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  %index = getelementptr inbounds %"class.boost::iterator_property_map"* %this1, i32 0, i32 1
  %3 = load %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost18dummy_property_mapC1Ev(%"class.boost::dummy_property_map"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::dummy_property_map"*, align 4
  store %"class.boost::dummy_property_map"* %this, %"class.boost::dummy_property_map"** %this.addr, align 4
  %this1 = load %"class.boost::dummy_property_map"** %this.addr
  call void @_ZN5boost18dummy_property_mapC2Ev(%"class.boost::dummy_property_map"* %this1)
  ret void
}

define linkonce_odr i32 @_ZN5boost12choose_paramIiEET_RKNS_15param_not_foundERKS1_(%"struct.boost::param_not_found"*, i32* %d) nounwind {
entry:
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  %d.addr = alloca i32*, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  store i32* %d, i32** %d.addr, align 4
  %1 = load i32** %d.addr, align 4
  %2 = load i32* %1, align 4
  ret i32 %2
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14distance_inf_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %p) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %0 = alloca %"struct.boost::distance_inf_t", align 1
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14distance_inf_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr i32 @_ZNSt14numeric_limitsIiE3maxEv() nounwind align 2 {
entry:
  ret i32 2147483647
}

define linkonce_odr void @_ZN5boost23dijkstra_shortest_pathsINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_16dijkstra_visitorINS_12null_visitorEEEPjPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EENS_26vec_adj_list_vertex_id_mapIS5_jEESt4lessIiENS_11closed_plusIiEEiiSE_NS_17vertex_distance_tENS_16bgl_named_paramsISD_NS_20vertex_predecessor_tES5_EEEEvRKT_NS_12graph_traitsISV_E17vertex_descriptorET1_T2_T3_T4_T5_T6_T7_T8_T0_RKNSS_IT9_T10_T11_EENS_11enable_if_cIXsr19is_base_and_derivedINS_21vertex_list_graph_tagENSZ_18traversal_categoryEEE5valueENS_5graph6detail12no_parameterEE4typeE(%"class.boost::adjacency_list"* %g, i32 %s, i32* %predecessor, i32* %distance, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %weight, %"struct.boost::closed_plus"* byval align 4 %combine, i32 %inf, i32 %zero, %"class.boost::dijkstra_visitor"* byval align 4 %vis, %"struct.boost::bgl_named_params"*) inlinehint {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %predecessor.addr = alloca i32*, align 4
  %distance.addr = alloca i32*, align 4
  %index_map = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %compare = alloca %"struct.std::less", align 1
  %inf.addr = alloca i32, align 4
  %zero.addr = alloca i32, align 4
  %.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %1 = alloca %"struct.boost::graph::detail::no_parameter", align 1
  %color = alloca %"struct.boost::two_bit_color_map", align 4
  %agg.tmp = alloca %"struct.boost::adj_list_edge_property_map.33", align 4
  %agg.tmp1 = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %agg.tmp2 = alloca %"struct.std::less", align 1
  %agg.tmp3 = alloca %"struct.boost::closed_plus", align 4
  %agg.tmp4 = alloca %"class.boost::dijkstra_visitor", align 4
  %agg.tmp5 = alloca %"struct.boost::two_bit_color_map", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32* %predecessor, i32** %predecessor.addr, align 4
  store i32* %distance, i32** %distance.addr, align 4
  store i32 %inf, i32* %inf.addr, align 4
  store i32 %zero, i32* %zero.addr, align 4
  store %"struct.boost::bgl_named_params"* %0, %"struct.boost::bgl_named_params"** %.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"class.boost::adjacency_list"* %2 to %"struct.boost::adj_list_helper"*
  %call = call i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISG_T0_EE(%"struct.boost::adj_list_helper"* %3)
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1EjRKS3_(%"struct.boost::two_bit_color_map"* %color, i32 %call, %"struct.boost::vec_adj_list_vertex_id_map"* %index_map)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = load i32* %s.addr, align 4
  %6 = load i32** %predecessor.addr, align 4
  %7 = load i32** %distance.addr, align 4
  %8 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %agg.tmp to i8*
  %9 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %weight to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %8, i8* %9, i32 4, i32 4, i1 false)
  %10 = bitcast %"struct.boost::closed_plus"* %agg.tmp3 to i8*
  %11 = bitcast %"struct.boost::closed_plus"* %combine to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %10, i8* %11, i32 4, i32 4, i1 false)
  %12 = load i32* %inf.addr, align 4
  %13 = load i32* %zero.addr, align 4
  %14 = bitcast %"class.boost::dijkstra_visitor"* %agg.tmp4 to i8*
  %15 = bitcast %"class.boost::dijkstra_visitor"* %vis to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %14, i8* %15, i32 1, i32 1, i1 false)
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS4_(%"struct.boost::two_bit_color_map"* %agg.tmp5, %"struct.boost::two_bit_color_map"* %color)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZN5boost23dijkstra_shortest_pathsINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_16dijkstra_visitorINS_12null_visitorEEEPjPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EENS_26vec_adj_list_vertex_id_mapIS5_jEESt4lessIiENS_11closed_plusIiEEiiNS_17two_bit_color_mapISM_EEEEvRKT_NS_12graph_traitsIST_E17vertex_descriptorET1_T2_T3_T4_T5_T6_T7_T8_T0_T9_(%"class.boost::adjacency_list"* %4, i32 %5, i32* %6, i32* %7, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %agg.tmp, %"struct.boost::closed_plus"* byval align 4 %agg.tmp3, i32 %12, i32 %13, %"class.boost::dijkstra_visitor"* byval align 4 %agg.tmp4, %"struct.boost::two_bit_color_map"* %agg.tmp5)
          to label %invoke.cont7 unwind label %lpad6

invoke.cont7:                                     ; preds = %invoke.cont
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp5)
          to label %invoke.cont8 unwind label %lpad

invoke.cont8:                                     ; preds = %invoke.cont7
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %color)
  ret void

lpad:                                             ; preds = %invoke.cont7, %entry
  %16 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %17 = extractvalue { i8*, i32 } %16, 0
  store i8* %17, i8** %exn.slot
  %18 = extractvalue { i8*, i32 } %16, 1
  store i32 %18, i32* %ehselector.slot
  br label %ehcleanup

lpad6:                                            ; preds = %invoke.cont
  %19 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %20 = extractvalue { i8*, i32 } %19, 0
  store i8* %20, i8** %exn.slot
  %21 = extractvalue { i8*, i32 } %19, 1
  store i32 %21, i32* %ehselector.slot
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp5)
          to label %invoke.cont9 unwind label %terminate.lpad

invoke.cont9:                                     ; preds = %lpad6
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont9, %lpad
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %color)
          to label %invoke.cont10 unwind label %terminate.lpad

invoke.cont10:                                    ; preds = %ehcleanup
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont10
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val11 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val11

terminate.lpad:                                   ; preds = %ehcleanup, %lpad6
  %22 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr i32** @_ZN5boost12choose_paramIPjNS_18dummy_property_mapEEERKT_S5_RKT0_(i32** %param, %"class.boost::dummy_property_map"*) nounwind {
entry:
  %param.addr = alloca i32**, align 4
  %.addr = alloca %"class.boost::dummy_property_map"*, align 4
  store i32** %param, i32*** %param.addr, align 4
  store %"class.boost::dummy_property_map"* %0, %"class.boost::dummy_property_map"** %.addr, align 4
  %1 = load i32*** %param.addr, align 4
  ret i32** %1
}

define linkonce_odr i32** @_ZN5boost9get_paramINS_20vertex_predecessor_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjS1_NS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSB_SA_(%"struct.boost::bgl_named_params"* %p, i32) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %.addr = alloca i32, align 4
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %call = call i32** @_ZN5boost22lookup_named_param_defINS_20vertex_predecessor_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjS1_NS_11no_propertyEEEEENS_15param_not_foundEE3getERKS8_RKS9_(%"struct.boost::bgl_named_params"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret i32** %call
}

define linkonce_odr void @_ZN5boost12choose_paramISt4lessIiEEET_RKNS_15param_not_foundERKS3_(%"struct.std::less"* noalias sret %agg.result, %"struct.boost::param_not_found"*, %"struct.std::less"* %d) nounwind {
entry:
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  %d.addr = alloca %"struct.std::less"*, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  store %"struct.std::less"* %d, %"struct.std::less"** %d.addr, align 4
  %1 = load %"struct.std::less"** %d.addr, align 4
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_18distance_compare_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %p) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %0 = alloca %"struct.boost::distance_compare_t", align 1
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_compare_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr void @_ZN5boost12choose_paramINS_11closed_plusIiEEEET_RKNS_15param_not_foundERKS3_(%"struct.boost::closed_plus"* noalias sret %agg.result, %"struct.boost::param_not_found"*, %"struct.boost::closed_plus"* %d) nounwind {
entry:
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  %d.addr = alloca %"struct.boost::closed_plus"*, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  store %"struct.boost::closed_plus"* %d, %"struct.boost::closed_plus"** %d.addr, align 4
  %1 = load %"struct.boost::closed_plus"** %d.addr, align 4
  %2 = bitcast %"struct.boost::closed_plus"* %agg.result to i8*
  %3 = bitcast %"struct.boost::closed_plus"* %1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_18distance_combine_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %p) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %0 = alloca %"struct.boost::distance_combine_t", align 1
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_combine_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr void @_ZN5boost11closed_plusIiEC1Ei(%"struct.boost::closed_plus"* %this, i32 %inf) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::closed_plus"*, align 4
  %inf.addr = alloca i32, align 4
  store %"struct.boost::closed_plus"* %this, %"struct.boost::closed_plus"** %this.addr, align 4
  store i32 %inf, i32* %inf.addr, align 4
  %this1 = load %"struct.boost::closed_plus"** %this.addr
  %0 = load i32* %inf.addr, align 4
  call void @_ZN5boost11closed_plusIiEC2Ei(%"struct.boost::closed_plus"* %this1, i32 %0)
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_15distance_zero_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %p) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %0 = alloca %"struct.boost::distance_zero_t", align 1
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15distance_zero_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr void @_ZN5boost12choose_paramINS_16dijkstra_visitorINS_12null_visitorEEEEET_RKNS_15param_not_foundERKS4_(%"class.boost::dijkstra_visitor"* noalias sret %agg.result, %"struct.boost::param_not_found"*, %"class.boost::dijkstra_visitor"* %d) nounwind {
entry:
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  %d.addr = alloca %"class.boost::dijkstra_visitor"*, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  store %"class.boost::dijkstra_visitor"* %d, %"class.boost::dijkstra_visitor"** %d.addr, align 4
  %1 = load %"class.boost::dijkstra_visitor"** %d.addr, align 4
  %2 = bitcast %"class.boost::dijkstra_visitor"* %agg.result to i8*
  %3 = bitcast %"class.boost::dijkstra_visitor"* %1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 1, i32 1, i1 false)
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_15graph_visitor_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSC_SB_(%"struct.boost::bgl_named_params"* %p, i32) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %.addr = alloca i32, align 4
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15graph_visitor_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr void @_ZN5boost21make_dijkstra_visitorINS_12null_visitorEEENS_16dijkstra_visitorIT_EES3_(%"class.boost::dijkstra_visitor"* noalias sret %agg.result) {
entry:
  %vis = alloca %"struct.boost::null_visitor", align 1
  %agg.tmp = alloca %"struct.boost::null_visitor", align 1
  call void @_ZN5boost16dijkstra_visitorINS_12null_visitorEEC1ES1_(%"class.boost::dijkstra_visitor"* %agg.result)
  ret void
}

define linkonce_odr void @_ZN5boost16dijkstra_visitorINS_12null_visitorEEC1ES1_(%"class.boost::dijkstra_visitor"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::dijkstra_visitor"*, align 4
  %vis = alloca %"struct.boost::null_visitor", align 1
  store %"class.boost::dijkstra_visitor"* %this, %"class.boost::dijkstra_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::dijkstra_visitor"** %this.addr
  call void @_ZN5boost16dijkstra_visitorINS_12null_visitorEEC2ES1_(%"class.boost::dijkstra_visitor"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost16dijkstra_visitorINS_12null_visitorEEC2ES1_(%"class.boost::dijkstra_visitor"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::dijkstra_visitor"*, align 4
  %vis = alloca %"struct.boost::null_visitor", align 1
  %agg.tmp = alloca %"struct.boost::null_visitor", align 1
  store %"class.boost::dijkstra_visitor"* %this, %"class.boost::dijkstra_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::dijkstra_visitor"** %this.addr
  %0 = bitcast %"class.boost::dijkstra_visitor"* %this1 to %"class.boost::bfs_visitor"*
  call void @_ZN5boost11bfs_visitorINS_12null_visitorEEC2ES1_(%"class.boost::bfs_visitor"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorINS_12null_visitorEEC2ES1_(%"class.boost::bfs_visitor"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %vis = alloca %"struct.boost::null_visitor", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15graph_visitor_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15graph_visitor_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15graph_visitor_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.13"* %p, %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15graph_visitor_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15graph_visitor_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15distance_zero_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15distance_zero_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15distance_zero_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.13"* %p, %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15distance_zero_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_15distance_zero_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

define linkonce_odr void @_ZN5boost11closed_plusIiEC2Ei(%"struct.boost::closed_plus"* %this, i32 %inf) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::closed_plus"*, align 4
  %inf.addr = alloca i32, align 4
  store %"struct.boost::closed_plus"* %this, %"struct.boost::closed_plus"** %this.addr, align 4
  store i32 %inf, i32* %inf.addr, align 4
  %this1 = load %"struct.boost::closed_plus"** %this.addr
  %inf2 = getelementptr inbounds %"struct.boost::closed_plus"* %this1, i32 0, i32 0
  %0 = load i32* %inf.addr, align 4
  store i32 %0, i32* %inf2, align 4
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_combine_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_combine_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_combine_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.13"* %p, %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_combine_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_combine_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_compare_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_compare_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_compare_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.13"* %p, %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_compare_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_18distance_compare_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

define linkonce_odr i32** @_ZN5boost22lookup_named_param_defINS_20vertex_predecessor_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjS1_NS_11no_propertyEEEEENS_15param_not_foundEE3getERKS8_RKS9_(%"struct.boost::bgl_named_params"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call i32** @_ZN5boost22lookup_named_param_defINS_20vertex_predecessor_tENS_16bgl_named_paramsIPjS1_NS_11no_propertyEEENS_15param_not_foundEE3getERKS5_RKS6_(%"struct.boost::bgl_named_params.13"* %m_base, %"struct.boost::param_not_found"* %1)
  ret i32** %call
}

define linkonce_odr i32** @_ZN5boost22lookup_named_param_defINS_20vertex_predecessor_tENS_16bgl_named_paramsIPjS1_NS_11no_propertyEEENS_15param_not_foundEE3getERKS5_RKS6_(%"struct.boost::bgl_named_params.13"* %p, %"struct.boost::param_not_found"*) nounwind align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.13"* %p, %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %1, i32 0, i32 0
  ret i32** %m_value
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1EjRKS3_(%"struct.boost::two_bit_color_map"* %this, i32 %n, %"struct.boost::vec_adj_list_vertex_id_map"* %index) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %n.addr = alloca i32, align 4
  %index.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %index, %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %0 = load i32* %n.addr, align 4
  %1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2EjRKS3_(%"struct.boost::two_bit_color_map"* %this1, i32 %0, %"struct.boost::vec_adj_list_vertex_id_map"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost23dijkstra_shortest_pathsINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_16dijkstra_visitorINS_12null_visitorEEEPjPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EENS_26vec_adj_list_vertex_id_mapIS5_jEESt4lessIiENS_11closed_plusIiEEiiNS_17two_bit_color_mapISM_EEEEvRKT_NS_12graph_traitsIST_E17vertex_descriptorET1_T2_T3_T4_T5_T6_T7_T8_T0_T9_(%"class.boost::adjacency_list"* %g, i32 %s, i32* %predecessor, i32* %distance, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %weight, %"struct.boost::closed_plus"* byval align 4 %combine, i32 %inf, i32 %zero, %"class.boost::dijkstra_visitor"* byval align 4 %vis, %"struct.boost::two_bit_color_map"* %color) inlinehint {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %predecessor.addr = alloca i32*, align 4
  %distance.addr = alloca i32*, align 4
  %index_map = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %compare = alloca %"struct.std::less", align 1
  %inf.addr = alloca i32, align 4
  %zero.addr = alloca i32, align 4
  %ui = alloca %"class.boost::range_detail::integer_iterator", align 4
  %ui_end = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp = alloca %"class.boost::tuples::tuple", align 4
  %ref.tmp = alloca %"struct.std::pair.15", align 4
  %tmp3 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %ref.tmp7 = alloca i32, align 4
  %agg.tmp = alloca %"struct.boost::adj_list_edge_property_map.33", align 4
  %agg.tmp11 = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %agg.tmp12 = alloca %"struct.std::less", align 1
  %agg.tmp13 = alloca %"struct.boost::closed_plus", align 4
  %agg.tmp14 = alloca %"class.boost::dijkstra_visitor", align 4
  %agg.tmp15 = alloca %"struct.boost::two_bit_color_map", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32* %predecessor, i32** %predecessor.addr, align 4
  store i32* %distance, i32** %distance.addr, align 4
  store i32 %inf, i32* %inf.addr, align 4
  store i32 %zero, i32* %zero.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %ui)
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %ui_end)
  call void @_ZN5boost6tuples3tieINS_12range_detail16integer_iteratorIjEES4_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERS7_RS8_(%"class.boost::tuples::tuple"* sret %tmp, %"class.boost::range_detail::integer_iterator"* %ui, %"class.boost::range_detail::integer_iterator"* %ui_end)
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = bitcast %"class.boost::adjacency_list"* %0 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost8verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEESt4pairINT_15vertex_iteratorESI_ERKNS_15adj_list_helperISH_T0_EE(%"struct.std::pair.15"* sret %ref.tmp, %"struct.boost::adj_list_helper"* %1)
  %call = call %"class.boost::tuples::tuple"* @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EaSIS4_S4_EERS7_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple"* %tmp, %"struct.std::pair.15"* %ref.tmp)
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %ui_end to %"class.boost::iterator_facade"*
  %call1 = call zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %2, %"class.boost::iterator_facade"* %3)
  br i1 %call1, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %4 = bitcast %"class.boost::dijkstra_visitor"* %vis to %"class.boost::bfs_visitor"*
  %5 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call2 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %5)
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorINS_12null_visitorEE17initialize_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS8_EES8_S5_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp3, %"class.boost::bfs_visitor"* %4, i32 %call2, %"class.boost::adjacency_list"* %6)
  %7 = load i32** %distance.addr, align 4
  %8 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call4 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %8)
  call void @_Z3putIiiEvPT_iRKT0_(i32* %7, i32 %call4, i32* %inf.addr)
  %9 = load i32** %predecessor.addr, align 4
  %10 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call5 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %10)
  %11 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call6 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %11)
  store i32 %call6, i32* %ref.tmp7, align 4
  call void @_Z3putIjjEvPT_iRKT0_(i32* %9, i32 %call5, i32* %ref.tmp7)
  %12 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call8 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %12)
  %call9 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5whiteEv()
  call void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %call8, i32 %call9)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %13 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call10 = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %13)
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %14 = load i32** %distance.addr, align 4
  %15 = load i32* %s.addr, align 4
  call void @_Z3putIiiEvPT_iRKT0_(i32* %14, i32 %15, i32* %zero.addr)
  %16 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %17 = load i32* %s.addr, align 4
  %18 = load i32** %predecessor.addr, align 4
  %19 = load i32** %distance.addr, align 4
  %20 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %agg.tmp to i8*
  %21 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %weight to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %20, i8* %21, i32 4, i32 4, i1 false)
  %22 = bitcast %"struct.boost::closed_plus"* %agg.tmp13 to i8*
  %23 = bitcast %"struct.boost::closed_plus"* %combine to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %22, i8* %23, i32 4, i32 4, i1 false)
  %24 = load i32* %zero.addr, align 4
  %25 = bitcast %"class.boost::dijkstra_visitor"* %agg.tmp14 to i8*
  %26 = bitcast %"class.boost::dijkstra_visitor"* %vis to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %25, i8* %26, i32 1, i32 1, i1 false)
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS4_(%"struct.boost::two_bit_color_map"* %agg.tmp15, %"struct.boost::two_bit_color_map"* %color)
  invoke void @_ZN5boost31dijkstra_shortest_paths_no_initINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_16dijkstra_visitorINS_12null_visitorEEEPjPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EENS_26vec_adj_list_vertex_id_mapIS5_jEESt4lessIiENS_11closed_plusIiEEiNS_17two_bit_color_mapISM_EEEEvRKT_NS_12graph_traitsIST_E17vertex_descriptorET1_T2_T3_T4_T5_T6_T7_T0_T8_(%"class.boost::adjacency_list"* %16, i32 %17, i32* %18, i32* %19, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %agg.tmp, %"struct.boost::closed_plus"* byval align 4 %agg.tmp13, i32 %24, %"class.boost::dijkstra_visitor"* byval align 4 %agg.tmp14, %"struct.boost::two_bit_color_map"* %agg.tmp15)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.end
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp15)
  ret void

lpad:                                             ; preds = %for.end
  %27 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %28 = extractvalue { i8*, i32 } %27, 0
  store i8* %28, i8** %exn.slot
  %29 = extractvalue { i8*, i32 } %27, 1
  store i32 %29, i32* %ehselector.slot
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp15)
          to label %invoke.cont16 unwind label %terminate.lpad

invoke.cont16:                                    ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont16
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val17 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val17

terminate.lpad:                                   ; preds = %lpad
  %30 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS4_(%"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  store %"struct.boost::two_bit_color_map"* %0, %"struct.boost::two_bit_color_map"** %.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %1 = load %"struct.boost::two_bit_color_map"** %.addr
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2ERKS4_(%"struct.boost::two_bit_color_map"* %this1, %"struct.boost::two_bit_color_map"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED2Ev(%"struct.boost::two_bit_color_map"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED2Ev(%"struct.boost::two_bit_color_map"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  call void @_ZN5boost12shared_arrayIhED1Ev(%"class.boost::shared_array"* %data)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayIhED1Ev(%"class.boost::shared_array"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  call void @_ZN5boost12shared_arrayIhED2Ev(%"class.boost::shared_array"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayIhED2Ev(%"class.boost::shared_array"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %pn = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 1
  call void @_ZN5boost6detail12shared_countD1Ev(%"class.boost::detail::shared_count"* %pn)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countD1Ev(%"class.boost::detail::shared_count"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  call void @_ZN5boost6detail12shared_countD2Ev(%"class.boost::detail::shared_count"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countD2Ev(%"class.boost::detail::shared_count"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %pi_ = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::sp_counted_base"** %pi_, align 4
  %cmp = icmp ne %"class.boost::detail::sp_counted_base"* %0, null
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %pi_2 = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %1 = load %"class.boost::detail::sp_counted_base"** %pi_2, align 4
  call void @_ZN5boost6detail15sp_counted_base7releaseEv(%"class.boost::detail::sp_counted_base"* %1)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_base7releaseEv(%"class.boost::detail::sp_counted_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %use_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 1
  %call = call i32 @_ZN5boost6detail23atomic_exchange_and_addEPii(i32* %use_count_, i32 -1)
  %cmp = icmp eq i32 %call, 1
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to void (%"class.boost::detail::sp_counted_base"*)***
  %vtable = load void (%"class.boost::detail::sp_counted_base"*)*** %0
  %vfn = getelementptr inbounds void (%"class.boost::detail::sp_counted_base"*)** %vtable, i64 2
  %1 = load void (%"class.boost::detail::sp_counted_base"*)** %vfn
  call void %1(%"class.boost::detail::sp_counted_base"* %this1)
  call void @_ZN5boost6detail15sp_counted_base12weak_releaseEv(%"class.boost::detail::sp_counted_base"* %this1)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr i32 @_ZN5boost6detail23atomic_exchange_and_addEPii(i32* %pw, i32 %dv) nounwind inlinehint {
entry:
  %pw.addr = alloca i32*, align 4
  %dv.addr = alloca i32, align 4
  %r = alloca i32, align 4
  store i32* %pw, i32** %pw.addr, align 4
  store i32 %dv, i32* %dv.addr, align 4
  %0 = load i32** %pw.addr, align 4
  %1 = load i32** %pw.addr, align 4
  %2 = load i32* %dv.addr, align 4
  %3 = call i32 asm sideeffect "lock\0A\09xadd $1, $0", "=*m,=r,*m,1,~{memory},~{cc},~{dirflag},~{fpsr},~{flags}"(i32* %0, i32* %1, i32 %2) nounwind, !srcloc !0
  store i32 %3, i32* %r, align 4
  %4 = load i32* %r, align 4
  ret i32 %4
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_base12weak_releaseEv(%"class.boost::detail::sp_counted_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %weak_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 2
  %call = call i32 @_ZN5boost6detail23atomic_exchange_and_addEPii(i32* %weak_count_, i32 -1)
  %cmp = icmp eq i32 %call, 1
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to void (%"class.boost::detail::sp_counted_base"*)***
  %vtable = load void (%"class.boost::detail::sp_counted_base"*)*** %0
  %vfn = getelementptr inbounds void (%"class.boost::detail::sp_counted_base"*)** %vtable, i64 3
  %1 = load void (%"class.boost::detail::sp_counted_base"*)** %vfn
  call void %1(%"class.boost::detail::sp_counted_base"* %this1)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2ERKS4_(%"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  store %"struct.boost::two_bit_color_map"* %0, %"struct.boost::two_bit_color_map"** %.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %n = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::two_bit_color_map"** %.addr, align 4
  %n2 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %1, i32 0, i32 0
  %2 = load i32* %n2, align 4
  store i32 %2, i32* %n, align 4
  %index = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 1
  %3 = load %"struct.boost::two_bit_color_map"** %.addr, align 4
  %index3 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %3, i32 0, i32 1
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  %4 = load %"struct.boost::two_bit_color_map"** %.addr, align 4
  %data4 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %4, i32 0, i32 2
  call void @_ZN5boost12shared_arrayIhEC1ERKS1_(%"class.boost::shared_array"* %data, %"class.boost::shared_array"* %data4)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayIhEC1ERKS1_(%"class.boost::shared_array"* %this, %"class.boost::shared_array"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  %.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  store %"class.boost::shared_array"* %0, %"class.boost::shared_array"** %.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %1 = load %"class.boost::shared_array"** %.addr
  call void @_ZN5boost12shared_arrayIhEC2ERKS1_(%"class.boost::shared_array"* %this1, %"class.boost::shared_array"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayIhEC2ERKS1_(%"class.boost::shared_array"* %this, %"class.boost::shared_array"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  %.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  store %"class.boost::shared_array"* %0, %"class.boost::shared_array"** %.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %px = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 0
  %1 = load %"class.boost::shared_array"** %.addr, align 4
  %px2 = getelementptr inbounds %"class.boost::shared_array"* %1, i32 0, i32 0
  %2 = load i8** %px2, align 4
  store i8* %2, i8** %px, align 4
  %pn = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 1
  %3 = load %"class.boost::shared_array"** %.addr, align 4
  %pn3 = getelementptr inbounds %"class.boost::shared_array"* %3, i32 0, i32 1
  call void @_ZN5boost6detail12shared_countC1ERKS1_(%"class.boost::detail::shared_count"* %pn, %"class.boost::detail::shared_count"* %pn3)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC1ERKS1_(%"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"* %r) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %r.addr = alloca %"class.boost::detail::shared_count"*, align 4
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store %"class.boost::detail::shared_count"* %r, %"class.boost::detail::shared_count"** %r.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %0 = load %"class.boost::detail::shared_count"** %r.addr
  call void @_ZN5boost6detail12shared_countC2ERKS1_(%"class.boost::detail::shared_count"* %this1, %"class.boost::detail::shared_count"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC2ERKS1_(%"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"* %r) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %r.addr = alloca %"class.boost::detail::shared_count"*, align 4
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store %"class.boost::detail::shared_count"* %r, %"class.boost::detail::shared_count"** %r.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %pi_ = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::shared_count"** %r.addr, align 4
  %pi_2 = getelementptr inbounds %"class.boost::detail::shared_count"* %0, i32 0, i32 0
  %1 = load %"class.boost::detail::sp_counted_base"** %pi_2, align 4
  store %"class.boost::detail::sp_counted_base"* %1, %"class.boost::detail::sp_counted_base"** %pi_, align 4
  %pi_3 = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %2 = load %"class.boost::detail::sp_counted_base"** %pi_3, align 4
  %cmp = icmp ne %"class.boost::detail::sp_counted_base"* %2, null
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %pi_4 = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %3 = load %"class.boost::detail::sp_counted_base"** %pi_4, align 4
  call void @_ZN5boost6detail15sp_counted_base12add_ref_copyEv(%"class.boost::detail::sp_counted_base"* %3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_base12add_ref_copyEv(%"class.boost::detail::sp_counted_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %use_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 1
  call void @_ZN5boost6detail16atomic_incrementEPi(i32* %use_count_)
  ret void
}

define linkonce_odr void @_ZN5boost6detail16atomic_incrementEPi(i32* %pw) nounwind inlinehint {
entry:
  %pw.addr = alloca i32*, align 4
  store i32* %pw, i32** %pw.addr, align 4
  %0 = load i32** %pw.addr, align 4
  %1 = load i32** %pw.addr, align 4
  call void asm "lock\0A\09incl $0", "=*m,*m,~{cc},~{dirflag},~{fpsr},~{flags}"(i32* %0, i32* %1) nounwind, !srcloc !1
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorINS_12null_visitorEE17initialize_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS8_EES8_S5_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_initialize_vertex", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_20on_initialize_vertexEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_Z3putIiiEvPT_iRKT0_(i32* %pa, i32 %k, i32* %val) nounwind inlinehint {
entry:
  %pa.addr = alloca i32*, align 4
  %k.addr = alloca i32, align 4
  %val.addr = alloca i32*, align 4
  store i32* %pa, i32** %pa.addr, align 4
  store i32 %k, i32* %k.addr, align 4
  store i32* %val, i32** %val.addr, align 4
  %0 = load i32** %val.addr, align 4
  %1 = load i32* %0, align 4
  %2 = load i32* %k.addr, align 4
  %3 = load i32** %pa.addr, align 4
  %arrayidx = getelementptr inbounds i32* %3, i32 %2
  store i32 %1, i32* %arrayidx, align 4
  ret void
}

define linkonce_odr void @_Z3putIjjEvPT_iRKT0_(i32* %pa, i32 %k, i32* %val) nounwind inlinehint {
entry:
  %pa.addr = alloca i32*, align 4
  %k.addr = alloca i32, align 4
  %val.addr = alloca i32*, align 4
  store i32* %pa, i32** %pa.addr, align 4
  store i32 %k, i32* %k.addr, align 4
  store i32* %val, i32** %val.addr, align 4
  %0 = load i32** %val.addr, align 4
  %1 = load i32* %0, align 4
  %2 = load i32* %k.addr, align 4
  %3 = load i32** %pa.addr, align 4
  %arrayidx = getelementptr inbounds i32* %3, i32 %2
  store i32 %1, i32* %arrayidx, align 4
  ret void
}

define linkonce_odr void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %pm, i32 %key, i32 %value) inlinehint {
entry:
  %pm.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %key.addr = alloca i32, align 4
  %value.addr = alloca i32, align 4
  %i = alloca i32, align 4
  %byte_num = alloca i32, align 4
  %bit_position = alloca i32, align 4
  store %"struct.boost::two_bit_color_map"* %pm, %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  store i32 %key, i32* %key.addr, align 4
  store i32 %value, i32* %value.addr, align 4
  %0 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %index = getelementptr inbounds %"struct.boost::two_bit_color_map"* %0, i32 0, i32 1
  %1 = bitcast %"struct.boost::vec_adj_list_vertex_id_map"* %index to %"struct.boost::put_get_helper.35"*
  %call = call i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjjEET0_RKNS_14put_get_helperIS4_T_EERKT1_(%"struct.boost::put_get_helper.35"* %1, i32* %key.addr)
  store i32 %call, i32* %i, align 4
  %2 = load i32* %i, align 4
  %3 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %n = getelementptr inbounds %"struct.boost::two_bit_color_map"* %3, i32 0, i32 0
  %4 = load i32* %n, align 4
  %cmp = icmp ult i32 %2, %4
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  br label %cond.end

cond.false:                                       ; preds = %entry
  call void @__assert_fail(i8* getelementptr inbounds ([22 x i8]* @.str22, i32 0, i32 0), i8* getelementptr inbounds ([60 x i8]* @.str23, i32 0, i32 0), i32 86, i8* getelementptr inbounds ([207 x i8]* @__PRETTY_FUNCTION__._ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end

cond.end:                                         ; preds = %5, %cond.true
  %6 = load i32* %value.addr, align 4
  %cmp1 = icmp sge i32 %6, 0
  br i1 %cmp1, label %land.lhs.true, label %cond.false4

land.lhs.true:                                    ; preds = %cond.end
  %7 = load i32* %value.addr, align 4
  %cmp2 = icmp slt i32 %7, 4
  br i1 %cmp2, label %cond.true3, label %cond.false4

cond.true3:                                       ; preds = %land.lhs.true
  br label %cond.end5

cond.false4:                                      ; preds = %land.lhs.true, %cond.end
  call void @__assert_fail(i8* getelementptr inbounds ([24 x i8]* @.str28, i32 0, i32 0), i8* getelementptr inbounds ([60 x i8]* @.str23, i32 0, i32 0), i32 87, i8* getelementptr inbounds ([207 x i8]* @__PRETTY_FUNCTION__._ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end5

cond.end5:                                        ; preds = %8, %cond.true3
  %9 = load i32* %i, align 4
  %div = udiv i32 %9, 4
  store i32 %div, i32* %byte_num, align 4
  %10 = load i32* %i, align 4
  %rem = urem i32 %10, 4
  %mul = mul i32 %rem, 2
  store i32 %mul, i32* %bit_position, align 4
  %11 = load i32* %byte_num, align 4
  %12 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %12, i32 0, i32 2
  %call6 = call i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data)
  %arrayidx = getelementptr inbounds i8* %call6, i32 %11
  %13 = load i8* %arrayidx, align 1
  %conv = zext i8 %13 to i32
  %14 = load i32* %bit_position, align 4
  %shl = shl i32 3, %14
  %neg = xor i32 %shl, -1
  %and = and i32 %conv, %neg
  %15 = load i32* %value.addr, align 4
  %16 = load i32* %bit_position, align 4
  %shl7 = shl i32 %15, %16
  %or = or i32 %and, %shl7
  %conv8 = trunc i32 %or to i8
  %17 = load i32* %byte_num, align 4
  %18 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %data9 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %18, i32 0, i32 2
  %call10 = call i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data9)
  %arrayidx11 = getelementptr inbounds i8* %call10, i32 %17
  store i8 %conv8, i8* %arrayidx11, align 1
  ret void
}

define linkonce_odr i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5whiteEv() nounwind align 2 {
entry:
  ret i32 0
}

define linkonce_odr void @_ZN5boost31dijkstra_shortest_paths_no_initINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_16dijkstra_visitorINS_12null_visitorEEEPjPiNS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EENS_26vec_adj_list_vertex_id_mapIS5_jEESt4lessIiENS_11closed_plusIiEEiNS_17two_bit_color_mapISM_EEEEvRKT_NS_12graph_traitsIST_E17vertex_descriptorET1_T2_T3_T4_T5_T6_T7_T0_T8_(%"class.boost::adjacency_list"* %g, i32 %s, i32* %predecessor, i32* %distance, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %weight, %"struct.boost::closed_plus"* byval align 4 %combine, i32 %zero, %"class.boost::dijkstra_visitor"* byval align 4 %vis, %"struct.boost::two_bit_color_map"* %color) inlinehint {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %predecessor.addr = alloca i32*, align 4
  %distance.addr = alloca i32*, align 4
  %index_map = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %compare = alloca %"struct.std::less", align 1
  %zero.addr = alloca i32, align 4
  %icmp = alloca %"class.boost::indirect_cmp", align 4
  %index_in_heap_map_holder = alloca %"class.boost::scoped_array", align 4
  %index_in_heap = alloca %"class.boost::iterator_property_map.38", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %Q = alloca %"class.boost::d_ary_heap_indirect", align 4
  %agg.tmp = alloca %"class.boost::iterator_property_map.38", align 4
  %ref.tmp = alloca %"class.std::vector.3", align 4
  %bfs_vis = alloca %"struct.boost::detail::dijkstra_bfs_visitor", align 4
  %agg.tmp6 = alloca %"class.boost::dijkstra_visitor", align 4
  %agg.tmp7 = alloca %"struct.boost::adj_list_edge_property_map.33", align 4
  %agg.tmp8 = alloca %"struct.boost::closed_plus", align 4
  %agg.tmp9 = alloca %"struct.std::less", align 1
  %agg.tmp12 = alloca %"struct.boost::detail::dijkstra_bfs_visitor", align 4
  %agg.tmp13 = alloca %"struct.boost::two_bit_color_map", align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32* %predecessor, i32** %predecessor.addr, align 4
  store i32* %distance, i32** %distance.addr, align 4
  store i32 %zero, i32* %zero.addr, align 4
  call void @_ZN5boost12indirect_cmpIPiSt4lessIiEEC1ERKS1_RKS3_(%"class.boost::indirect_cmp"* %icmp, i32** %distance.addr, %"struct.std::less"* %compare)
  call void @_ZN5boost12scoped_arrayIjEC1EPj(%"class.boost::scoped_array"* %index_in_heap_map_holder, i32* null)
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  invoke void @_ZN5boost6detail29vertex_property_map_generatorINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_26vec_adj_list_vertex_id_mapIS6_jEEjE5buildERKSA_RKSC_RNS_12scoped_arrayIjEE(%"class.boost::iterator_property_map.38"* sret %index_in_heap, %"class.boost::adjacency_list"* %0, %"struct.boost::vec_adj_list_vertex_id_map"* %index_map, %"class.boost::scoped_array"* %index_in_heap_map_holder)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %1 = load i32** %distance.addr, align 4
  %2 = bitcast %"class.boost::iterator_property_map.38"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 8, i32 4, i1 false)
  invoke void @_ZNSt6vectorIjSaIjEEC1Ev(%"class.std::vector.3"* %ref.tmp)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %invoke.cont
  invoke void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEC1ES8_S7_RKSA_RKSD_(%"class.boost::d_ary_heap_indirect"* %Q, i32* %1, %"class.boost::iterator_property_map.38"* byval align 4 %agg.tmp, %"struct.std::less"* %compare, %"class.std::vector.3"* %ref.tmp)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %invoke.cont1
  invoke void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %ref.tmp)
          to label %invoke.cont4 unwind label %lpad

invoke.cont4:                                     ; preds = %invoke.cont3
  %4 = bitcast %"class.boost::dijkstra_visitor"* %agg.tmp6 to i8*
  %5 = bitcast %"class.boost::dijkstra_visitor"* %vis to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 1, i32 1, i1 false)
  %6 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %agg.tmp7 to i8*
  %7 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %weight to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 4, i32 4, i1 false)
  %8 = load i32** %predecessor.addr, align 4
  %9 = load i32** %distance.addr, align 4
  %10 = bitcast %"struct.boost::closed_plus"* %agg.tmp8 to i8*
  %11 = bitcast %"struct.boost::closed_plus"* %combine to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %10, i8* %11, i32 4, i32 4, i1 false)
  %12 = load i32* %zero.addr, align 4
  invoke void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_EC1ES4_RSJ_SS_S7_SD_SU_SF_i(%"struct.boost::detail::dijkstra_bfs_visitor"* %bfs_vis, %"class.boost::dijkstra_visitor"* byval align 4 %agg.tmp6, %"class.boost::d_ary_heap_indirect"* %Q, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %agg.tmp7, i32* %8, i32* %9, %"struct.boost::closed_plus"* byval align 4 %agg.tmp8, i32 %12)
          to label %invoke.cont11 unwind label %lpad10

invoke.cont11:                                    ; preds = %invoke.cont4
  %13 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %14 = load i32* %s.addr, align 4
  %15 = bitcast %"struct.boost::detail::dijkstra_bfs_visitor"* %agg.tmp12 to i8*
  %16 = bitcast %"struct.boost::detail::dijkstra_bfs_visitor"* %bfs_vis to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %15, i8* %16, i32 32, i32 4, i1 false)
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS4_(%"struct.boost::two_bit_color_map"* %agg.tmp13, %"struct.boost::two_bit_color_map"* %color)
          to label %invoke.cont14 unwind label %lpad10

invoke.cont14:                                    ; preds = %invoke.cont11
  invoke void @_ZN5boost19breadth_first_visitINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapIS5_jEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEESN_NS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EESC_SH_NS_11closed_plusIiEESJ_EENS_17two_bit_color_mapISE_EEEEvRKT_NS_12graph_traitsIS14_E17vertex_descriptorERT0_T1_T2_(%"class.boost::adjacency_list"* %13, i32 %14, %"class.boost::d_ary_heap_indirect"* %Q, %"struct.boost::detail::dijkstra_bfs_visitor"* byval align 4 %agg.tmp12, %"struct.boost::two_bit_color_map"* %agg.tmp13)
          to label %invoke.cont16 unwind label %lpad15

invoke.cont16:                                    ; preds = %invoke.cont14
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp13)
          to label %invoke.cont17 unwind label %lpad10

invoke.cont17:                                    ; preds = %invoke.cont16
  invoke void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEED1Ev(%"class.boost::d_ary_heap_indirect"* %Q)
          to label %invoke.cont19 unwind label %lpad

invoke.cont19:                                    ; preds = %invoke.cont17
  call void @_ZN5boost12scoped_arrayIjED1Ev(%"class.boost::scoped_array"* %index_in_heap_map_holder)
  ret void

lpad:                                             ; preds = %invoke.cont17, %invoke.cont3, %invoke.cont, %entry
  %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %18 = extractvalue { i8*, i32 } %17, 0
  store i8* %18, i8** %exn.slot
  %19 = extractvalue { i8*, i32 } %17, 1
  store i32 %19, i32* %ehselector.slot
  br label %ehcleanup21

lpad2:                                            ; preds = %invoke.cont1
  %20 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %21 = extractvalue { i8*, i32 } %20, 0
  store i8* %21, i8** %exn.slot
  %22 = extractvalue { i8*, i32 } %20, 1
  store i32 %22, i32* %ehselector.slot
  invoke void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %ref.tmp)
          to label %invoke.cont5 unwind label %terminate.lpad

invoke.cont5:                                     ; preds = %lpad2
  br label %ehcleanup21

lpad10:                                           ; preds = %invoke.cont16, %invoke.cont11, %invoke.cont4
  %23 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %24 = extractvalue { i8*, i32 } %23, 0
  store i8* %24, i8** %exn.slot
  %25 = extractvalue { i8*, i32 } %23, 1
  store i32 %25, i32* %ehselector.slot
  br label %ehcleanup

lpad15:                                           ; preds = %invoke.cont14
  %26 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %27 = extractvalue { i8*, i32 } %26, 0
  store i8* %27, i8** %exn.slot
  %28 = extractvalue { i8*, i32 } %26, 1
  store i32 %28, i32* %ehselector.slot
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp13)
          to label %invoke.cont18 unwind label %terminate.lpad

invoke.cont18:                                    ; preds = %lpad15
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont18, %lpad10
  invoke void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEED1Ev(%"class.boost::d_ary_heap_indirect"* %Q)
          to label %invoke.cont20 unwind label %terminate.lpad

invoke.cont20:                                    ; preds = %ehcleanup
  br label %ehcleanup21

ehcleanup21:                                      ; preds = %invoke.cont20, %invoke.cont5, %lpad
  invoke void @_ZN5boost12scoped_arrayIjED1Ev(%"class.boost::scoped_array"* %index_in_heap_map_holder)
          to label %invoke.cont22 unwind label %terminate.lpad

invoke.cont22:                                    ; preds = %ehcleanup21
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont22
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val23 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val23

terminate.lpad:                                   ; preds = %ehcleanup21, %ehcleanup, %lpad15, %lpad2
  %29 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost12indirect_cmpIPiSt4lessIiEEC1ERKS1_RKS3_(%"class.boost::indirect_cmp"* %this, i32** %df, %"struct.std::less"* %c) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::indirect_cmp"*, align 4
  %df.addr = alloca i32**, align 4
  %c.addr = alloca %"struct.std::less"*, align 4
  store %"class.boost::indirect_cmp"* %this, %"class.boost::indirect_cmp"** %this.addr, align 4
  store i32** %df, i32*** %df.addr, align 4
  store %"struct.std::less"* %c, %"struct.std::less"** %c.addr, align 4
  %this1 = load %"class.boost::indirect_cmp"** %this.addr
  %0 = load i32*** %df.addr
  %1 = load %"struct.std::less"** %c.addr
  call void @_ZN5boost12indirect_cmpIPiSt4lessIiEEC2ERKS1_RKS3_(%"class.boost::indirect_cmp"* %this1, i32** %0, %"struct.std::less"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost12scoped_arrayIjEC1EPj(%"class.boost::scoped_array"* %this, i32* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_array"*, align 4
  %p.addr = alloca i32*, align 4
  store %"class.boost::scoped_array"* %this, %"class.boost::scoped_array"** %this.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  %this1 = load %"class.boost::scoped_array"** %this.addr
  %0 = load i32** %p.addr, align 4
  call void @_ZN5boost12scoped_arrayIjEC2EPj(%"class.boost::scoped_array"* %this1, i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail29vertex_property_map_generatorINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_26vec_adj_list_vertex_id_mapIS6_jEEjE5buildERKSA_RKSC_RNS_12scoped_arrayIjEE(%"class.boost::iterator_property_map.38"* noalias sret %agg.result, %"class.boost::adjacency_list"* %g, %"struct.boost::vec_adj_list_vertex_id_map"* %index, %"class.boost::scoped_array"* %array_holder) align 2 {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %index.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %array_holder.addr = alloca %"class.boost::scoped_array"*, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %index, %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  store %"class.boost::scoped_array"* %array_holder, %"class.boost::scoped_array"** %array_holder.addr, align 4
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  %2 = load %"class.boost::scoped_array"** %array_holder.addr, align 4
  call void @_ZN5boost6detail36vertex_property_map_generator_helperINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_26vec_adj_list_vertex_id_mapIS6_jEEjLb1EE5buildERKSA_RKSC_RNS_12scoped_arrayIjEE(%"class.boost::iterator_property_map.38"* sret %agg.result, %"class.boost::adjacency_list"* %0, %"struct.boost::vec_adj_list_vertex_id_map"* %1, %"class.boost::scoped_array"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEC1ES8_S7_RKSA_RKSD_(%"class.boost::d_ary_heap_indirect"* %this, i32* %distance, %"class.boost::iterator_property_map.38"* byval align 4 %index_in_heap, %"struct.std::less"* %compare, %"class.std::vector.3"* %data) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %distance.addr = alloca i32*, align 4
  %compare.addr = alloca %"struct.std::less"*, align 4
  %data.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  store i32* %distance, i32** %distance.addr, align 4
  store %"struct.std::less"* %compare, %"struct.std::less"** %compare.addr, align 4
  store %"class.std::vector.3"* %data, %"class.std::vector.3"** %data.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %0 = load i32** %distance.addr, align 4
  %1 = load %"struct.std::less"** %compare.addr
  %2 = load %"class.std::vector.3"** %data.addr
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEC2ES8_S7_RKSA_RKSD_(%"class.boost::d_ary_heap_indirect"* %this1, i32* %0, %"class.boost::iterator_property_map.38"* byval align 4 %index_in_heap, %"struct.std::less"* %1, %"class.std::vector.3"* %2)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEEC1Ev(%"class.std::vector.3"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  call void @_ZNSt6vectorIjSaIjEEC2Ev(%"class.std::vector.3"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_EC1ES4_RSJ_SS_S7_SD_SU_SF_i(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"class.boost::dijkstra_visitor"* byval align 4 %vis, %"class.boost::d_ary_heap_indirect"* %Q, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %w, i32* %p, i32* %d, %"struct.boost::closed_plus"* byval align 4 %combine, i32 %zero) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %Q.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %p.addr = alloca i32*, align 4
  %d.addr = alloca i32*, align 4
  %compare = alloca %"struct.std::less", align 1
  %zero.addr = alloca i32, align 4
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store %"class.boost::d_ary_heap_indirect"* %Q, %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  store i32* %d, i32** %d.addr, align 4
  store i32 %zero, i32* %zero.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  %0 = load i32** %p.addr, align 4
  %1 = load i32** %d.addr, align 4
  %2 = load i32* %zero.addr, align 4
  %3 = load %"class.boost::d_ary_heap_indirect"** %Q.addr
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_EC2ES4_RSJ_SS_S7_SD_SU_SF_i(%"struct.boost::detail::dijkstra_bfs_visitor"* %this1, %"class.boost::dijkstra_visitor"* byval align 4 %vis, %"class.boost::d_ary_heap_indirect"* %3, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %w, i32* %0, i32* %1, %"struct.boost::closed_plus"* byval align 4 %combine, i32 %2)
  ret void
}

define linkonce_odr void @_ZN5boost19breadth_first_visitINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapIS5_jEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEESN_NS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EESC_SH_NS_11closed_plusIiEESJ_EENS_17two_bit_color_mapISE_EEEEvRKT_NS_12graph_traitsIS14_E17vertex_descriptorERT0_T1_T2_(%"class.boost::adjacency_list"* %g, i32 %s, %"class.boost::d_ary_heap_indirect"* %Q, %"struct.boost::detail::dijkstra_bfs_visitor"* byval align 4 %vis, %"struct.boost::two_bit_color_map"* %color) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %Q.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %sources = alloca [1 x i32], align 4
  %agg.tmp = alloca %"struct.boost::detail::dijkstra_bfs_visitor", align 4
  %agg.tmp2 = alloca %"struct.boost::two_bit_color_map", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store %"class.boost::d_ary_heap_indirect"* %Q, %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  %arrayinit.begin = getelementptr inbounds [1 x i32]* %sources, i32 0, i32 0
  %0 = load i32* %s.addr, align 4
  store i32 %0, i32* %arrayinit.begin
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %arraydecay = getelementptr inbounds [1 x i32]* %sources, i32 0, i32 0
  %arraydecay1 = getelementptr inbounds [1 x i32]* %sources, i32 0, i32 0
  %add.ptr = getelementptr inbounds i32* %arraydecay1, i32 1
  %2 = load %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  %3 = bitcast %"struct.boost::detail::dijkstra_bfs_visitor"* %agg.tmp to i8*
  %4 = bitcast %"struct.boost::detail::dijkstra_bfs_visitor"* %vis to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 32, i32 4, i1 false)
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS4_(%"struct.boost::two_bit_color_map"* %agg.tmp2, %"struct.boost::two_bit_color_map"* %color)
  invoke void @_ZN5boost19breadth_first_visitINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapIS5_jEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEESN_NS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EESC_SH_NS_11closed_plusIiEESJ_EENS_17two_bit_color_mapISE_EESC_EEvRKT_T3_S17_RT0_T1_T2_(%"class.boost::adjacency_list"* %1, i32* %arraydecay, i32* %add.ptr, %"class.boost::d_ary_heap_indirect"* %2, %"struct.boost::detail::dijkstra_bfs_visitor"* byval align 4 %agg.tmp, %"struct.boost::two_bit_color_map"* %agg.tmp2)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp2)
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp2)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEED1Ev(%"class.boost::d_ary_heap_indirect"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEED2Ev(%"class.boost::d_ary_heap_indirect"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost12scoped_arrayIjED1Ev(%"class.boost::scoped_array"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_array"*, align 4
  store %"class.boost::scoped_array"* %this, %"class.boost::scoped_array"** %this.addr, align 4
  %this1 = load %"class.boost::scoped_array"** %this.addr
  call void @_ZN5boost12scoped_arrayIjED2Ev(%"class.boost::scoped_array"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost12scoped_arrayIjED2Ev(%"class.boost::scoped_array"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_array"*, align 4
  store %"class.boost::scoped_array"* %this, %"class.boost::scoped_array"** %this.addr, align 4
  %this1 = load %"class.boost::scoped_array"** %this.addr
  %px = getelementptr inbounds %"class.boost::scoped_array"* %this1, i32 0, i32 0
  %0 = load i32** %px, align 4
  call void @_ZN5boost20checked_array_deleteIjEEvPT_(i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost20checked_array_deleteIjEEvPT_(i32* %x) nounwind inlinehint {
entry:
  %x.addr = alloca i32*, align 4
  store i32* %x, i32** %x.addr, align 4
  %0 = load i32** %x.addr, align 4
  %isnull = icmp eq i32* %0, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  %1 = bitcast i32* %0 to i8*
  call void @_ZdaPv(i8* %1) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

declare void @_ZdaPv(i8*) nounwind

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEED2Ev(%"class.boost::d_ary_heap_indirect"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %data = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  call void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %data)
  ret void
}

define linkonce_odr void @_ZN5boost19breadth_first_visitINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapIS5_jEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEESN_NS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EESC_SH_NS_11closed_plusIiEESJ_EENS_17two_bit_color_mapISE_EESC_EEvRKT_T3_S17_RT0_T1_T2_(%"class.boost::adjacency_list"* %g, i32* %sources_begin, i32* %sources_end, %"class.boost::d_ary_heap_indirect"* %Q, %"struct.boost::detail::dijkstra_bfs_visitor"* byval align 4 %vis, %"struct.boost::two_bit_color_map"* %color) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %sources_begin.addr = alloca i32*, align 4
  %sources_end.addr = alloca i32*, align 4
  %Q.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %ei = alloca %"struct.boost::detail::out_edge_iter", align 4
  %ei_end = alloca %"struct.boost::detail::out_edge_iter", align 4
  %s = alloca i32, align 4
  %u = alloca i32, align 4
  %tmp = alloca %"class.boost::tuples::tuple.40", align 4
  %ref.tmp = alloca %"struct.std::pair.26", align 4
  %v = alloca i32, align 4
  %ref.tmp8 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %v_color = alloca i32, align 4
  %agg.tmp14 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp16 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp20 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp22 = alloca %"class.boost::detail::edge_desc_impl", align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32* %sources_begin, i32** %sources_begin.addr, align 4
  store i32* %sources_end, i32** %sources_end.addr, align 4
  store %"class.boost::d_ary_heap_indirect"* %Q, %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  call void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1Ev(%"struct.boost::detail::out_edge_iter"* %ei)
  call void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1Ev(%"struct.boost::detail::out_edge_iter"* %ei_end)
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %0 = load i32** %sources_begin.addr, align 4
  %1 = load i32** %sources_end.addr, align 4
  %cmp = icmp ne i32* %0, %1
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %2 = load i32** %sources_begin.addr, align 4
  %3 = load i32* %2, align 4
  store i32 %3, i32* %s, align 4
  %4 = load i32* %s, align 4
  %call = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE4grayEv()
  call void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %4, i32 %call)
  %5 = load i32* %s, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E15discover_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_SY_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %vis, i32 %5, %"class.boost::adjacency_list"* %6)
  %7 = load %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE4pushERKj(%"class.boost::d_ary_heap_indirect"* %7, i32* %s)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %8 = load i32** %sources_begin.addr, align 4
  %incdec.ptr = getelementptr inbounds i32* %8, i32 1
  store i32* %incdec.ptr, i32** %sources_begin.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  br label %while.cond

while.cond:                                       ; preds = %for.end26, %for.end
  %9 = load %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  %call1 = call zeroext i1 @_ZNK5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE5emptyEv(%"class.boost::d_ary_heap_indirect"* %9)
  %lnot = xor i1 %call1, true
  br i1 %lnot, label %while.body, label %while.end

while.body:                                       ; preds = %while.cond
  %10 = load %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  %call2 = call i32* @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE3topEv(%"class.boost::d_ary_heap_indirect"* %10)
  %11 = load i32* %call2
  store i32 %11, i32* %u, align 4
  %12 = load %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE3popEv(%"class.boost::d_ary_heap_indirect"* %12)
  %13 = load i32* %u, align 4
  %14 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E14examine_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_SY_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %vis, i32 %13, %"class.boost::adjacency_list"* %14)
  call void @_ZN5boost6tuples3tieINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSI_RSJ_(%"class.boost::tuples::tuple.40"* sret %tmp, %"struct.boost::detail::out_edge_iter"* %ei, %"struct.boost::detail::out_edge_iter"* %ei_end)
  %15 = load i32* %u, align 4
  %16 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %17 = bitcast %"class.boost::adjacency_list"* %16 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost9out_edgesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEESt4pairINT_17out_edge_iteratorESI_ENSH_17vertex_descriptorERKNS_15adj_list_helperISH_T0_EE(%"struct.std::pair.26"* sret %ref.tmp, i32 %15, %"struct.boost::adj_list_helper"* %17)
  %call3 = call %"class.boost::tuples::tuple.40"* @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESG_NS0_9null_typeESH_SH_SH_SH_SH_SH_SH_EaSISF_SF_EERSI_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.40"* %tmp, %"struct.std::pair.26"* %ref.tmp)
  br label %for.cond4

for.cond4:                                        ; preds = %for.inc24, %while.body
  %18 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.27"*
  %19 = bitcast %"struct.boost::detail::out_edge_iter"* %ei_end to %"class.boost::iterator_facade.27"*
  %call5 = call zeroext i1 @_ZN5boostneINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iSE_SD_SF_SD_iEENS1_23enable_if_interoperableIT_T4_NS_3mpl6apply2INS1_12always_bool2ESH_SI_E4typeEE4typeERKNS_15iterator_facadeISH_T0_T1_T2_T3_EERKNSQ_ISI_T5_T6_T7_T8_EE(%"class.boost::iterator_facade.27"* %18, %"class.boost::iterator_facade.27"* %19)
  br i1 %call5, label %for.body6, label %for.end26

for.body6:                                        ; preds = %for.cond4
  %20 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.27"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %ref.tmp8, %"class.boost::iterator_facade.27"* %20)
  %21 = bitcast %"class.boost::detail::edge_desc_impl"* %ref.tmp8 to %"struct.boost::detail::edge_base"*
  %22 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call9 = call i32 @_ZN5boost6targetINS_12directed_tagEjNS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EET0_RKNS_6detail9edge_baseIT_S9_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %21, %"class.boost::adjacency_list"* %22)
  store i32 %call9, i32* %v, align 4
  %23 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.27"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp, %"class.boost::iterator_facade.27"* %23)
  %24 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E12examine_edgeINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %24)
  %25 = load i32* %v, align 4
  %call11 = call i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %25)
  store i32 %call11, i32* %v_color, align 4
  %26 = load i32* %v_color, align 4
  %call12 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5whiteEv()
  %cmp13 = icmp eq i32 %26, %call12
  br i1 %cmp13, label %if.then, label %if.else

if.then:                                          ; preds = %for.body6
  %27 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.27"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp14, %"class.boost::iterator_facade.27"* %27)
  %28 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E9tree_edgeINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp14, %"class.boost::adjacency_list"* %28)
  %29 = load i32* %v, align 4
  %call15 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE4grayEv()
  call void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %29, i32 %call15)
  %30 = load i32* %v, align 4
  %31 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E15discover_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_SY_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %vis, i32 %30, %"class.boost::adjacency_list"* %31)
  %32 = load %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE4pushERKj(%"class.boost::d_ary_heap_indirect"* %32, i32* %v)
  br label %if.end23

if.else:                                          ; preds = %for.body6
  %33 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.27"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp16, %"class.boost::iterator_facade.27"* %33)
  %34 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E13non_tree_edgeINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp16, %"class.boost::adjacency_list"* %34)
  %35 = load i32* %v_color, align 4
  %call17 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE4grayEv()
  %cmp18 = icmp eq i32 %35, %call17
  br i1 %cmp18, label %if.then19, label %if.else21

if.then19:                                        ; preds = %if.else
  %36 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.27"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp20, %"class.boost::iterator_facade.27"* %36)
  %37 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E11gray_targetINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp20, %"class.boost::adjacency_list"* %37)
  br label %if.end

if.else21:                                        ; preds = %if.else
  %38 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.27"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp22, %"class.boost::iterator_facade.27"* %38)
  %39 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E12black_targetINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp22, %"class.boost::adjacency_list"* %39)
  br label %if.end

if.end:                                           ; preds = %if.else21, %if.then19
  br label %if.end23

if.end23:                                         ; preds = %if.end, %if.then
  br label %for.inc24

for.inc24:                                        ; preds = %if.end23
  %40 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.27"*
  %call25 = call %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESD_NS_27bidirectional_traversal_tagESD_iEppEv(%"class.boost::iterator_facade.27"* %40)
  br label %for.cond4

for.end26:                                        ; preds = %for.cond4
  %41 = load i32* %u, align 4
  %call27 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5blackEv()
  call void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %41, i32 %call27)
  %42 = load i32* %u, align 4
  %43 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E13finish_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_SY_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %vis, i32 %42, %"class.boost::adjacency_list"* %43)
  br label %while.cond

while.end:                                        ; preds = %while.cond
  ret void
}

define linkonce_odr void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1Ev(%"struct.boost::detail::out_edge_iter"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  call void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC2Ev(%"struct.boost::detail::out_edge_iter"* %this1)
  ret void
}

define linkonce_odr i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE4grayEv() nounwind align 2 {
entry:
  ret i32 1
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E15discover_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_SY_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tmp = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::dijkstra_visitor"* %m_vis to %"class.boost::bfs_visitor"*
  %1 = load i32* %u.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorINS_12null_visitorEE15discover_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS8_EES8_S5_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp, %"class.boost::bfs_visitor"* %0, i32 %1, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE4pushERKj(%"class.boost::d_ary_heap_indirect"* %this, i32* %v) align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %v.addr = alloca i32*, align 4
  %index = alloca i32, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %data = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call = call i32 @_ZNKSt6vectorIjSaIjEE4sizeEv(%"class.std::vector.3"* %data)
  store i32 %call, i32* %index, align 4
  %data2 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %0 = load i32** %v.addr, align 4
  call void @_ZNSt6vectorIjSaIjEE9push_backERKj(%"class.std::vector.3"* %data2, i32* %0)
  %index_in_heap = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 3
  %1 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap to %"struct.boost::put_get_helper.39"*
  %2 = load i32** %v.addr, align 4
  %3 = load i32* %2, align 4
  call void @_ZN5boost3putINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jjEEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.39"* %1, i32 %3, i32* %index)
  %4 = load i32* %index, align 4
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE25preserve_heap_property_upEj(%"class.boost::d_ary_heap_indirect"* %this1, i32 %4)
  call void @_ZNK5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE11verify_heapEv(%"class.boost::d_ary_heap_indirect"* %this1)
  ret void
}

define linkonce_odr zeroext i1 @_ZNK5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE5emptyEv(%"class.boost::d_ary_heap_indirect"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %data = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call = call zeroext i1 @_ZNKSt6vectorIjSaIjEE5emptyEv(%"class.std::vector.3"* %data)
  ret i1 %call
}

define linkonce_odr i32* @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE3topEv(%"class.boost::d_ary_heap_indirect"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %data = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data, i32 0)
  ret i32* %call
}

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE3popEv(%"class.boost::d_ary_heap_indirect"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %ref.tmp = alloca i32, align 4
  %ref.tmp11 = alloca i32, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %index_in_heap = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 3
  %0 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap to %"struct.boost::put_get_helper.39"*
  %data = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data, i32 0)
  %1 = load i32* %call
  store i32 -1, i32* %ref.tmp, align 4
  call void @_ZN5boost3putINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jjEEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.39"* %0, i32 %1, i32* %ref.tmp)
  %data2 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call3 = call i32 @_ZNKSt6vectorIjSaIjEE4sizeEv(%"class.std::vector.3"* %data2)
  %cmp = icmp ne i32 %call3, 1
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %data4 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call5 = call i32* @_ZNSt6vectorIjSaIjEE4backEv(%"class.std::vector.3"* %data4)
  %2 = load i32* %call5
  %data6 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call7 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data6, i32 0)
  store i32 %2, i32* %call7
  %index_in_heap8 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 3
  %3 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap8 to %"struct.boost::put_get_helper.39"*
  %data9 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call10 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data9, i32 0)
  %4 = load i32* %call10
  store i32 0, i32* %ref.tmp11, align 4
  call void @_ZN5boost3putINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jiEEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.39"* %3, i32 %4, i32* %ref.tmp11)
  %data12 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  call void @_ZNSt6vectorIjSaIjEE8pop_backEv(%"class.std::vector.3"* %data12)
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE27preserve_heap_property_downEv(%"class.boost::d_ary_heap_indirect"* %this1)
  call void @_ZNK5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE11verify_heapEv(%"class.boost::d_ary_heap_indirect"* %this1)
  br label %if.end

if.else:                                          ; preds = %entry
  %data13 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  call void @_ZNSt6vectorIjSaIjEE8pop_backEv(%"class.std::vector.3"* %data13)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then
  ret void
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E14examine_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_SY_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tmp = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::dijkstra_visitor"* %m_vis to %"class.boost::bfs_visitor"*
  %1 = load i32* %u.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorINS_12null_visitorEE14examine_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS8_EES8_S5_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp, %"class.boost::bfs_visitor"* %0, i32 %1, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples3tieINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSI_RSJ_(%"class.boost::tuples::tuple.40"* noalias sret %agg.result, %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"* %t1) inlinehint {
entry:
  %t0.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  %0 = load %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  %1 = load %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  call void @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESG_NS0_9null_typeESH_SH_SH_SH_SH_SH_SH_EC1ESG_SG_(%"class.boost::tuples::tuple.40"* %agg.result, %"struct.boost::detail::out_edge_iter"* %0, %"struct.boost::detail::out_edge_iter"* %1)
  ret void
}

define linkonce_odr %"class.boost::tuples::tuple.40"* @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESG_NS0_9null_typeESH_SH_SH_SH_SH_SH_SH_EaSISF_SF_EERSI_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.40"* %this, %"struct.std::pair.26"* %k) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.40"*, align 4
  %k.addr = alloca %"struct.std::pair.26"*, align 4
  store %"class.boost::tuples::tuple.40"* %this, %"class.boost::tuples::tuple.40"** %this.addr, align 4
  store %"struct.std::pair.26"* %k, %"struct.std::pair.26"** %k.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.40"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.40"* %this1 to %"struct.boost::tuples::cons.41"*
  %head = getelementptr inbounds %"struct.boost::tuples::cons.41"* %0, i32 0, i32 0
  %ref = load %"struct.boost::detail::out_edge_iter"** %head, align 4
  %1 = load %"struct.std::pair.26"** %k.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.26"* %1, i32 0, i32 0
  %2 = bitcast %"struct.boost::detail::out_edge_iter"* %ref to i8*
  %3 = bitcast %"struct.boost::detail::out_edge_iter"* %first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 8, i32 4, i1 false)
  %4 = bitcast %"class.boost::tuples::tuple.40"* %this1 to %"struct.boost::tuples::cons.41"*
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.41"* %4, i32 0, i32 1
  %head2 = getelementptr inbounds %"struct.boost::tuples::cons.42"* %tail, i32 0, i32 0
  %ref3 = load %"struct.boost::detail::out_edge_iter"** %head2, align 4
  %5 = load %"struct.std::pair.26"** %k.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.26"* %5, i32 0, i32 1
  %6 = bitcast %"struct.boost::detail::out_edge_iter"* %ref3 to i8*
  %7 = bitcast %"struct.boost::detail::out_edge_iter"* %second to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 8, i32 4, i1 false)
  ret %"class.boost::tuples::tuple.40"* %this1
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E12examine_edgeINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %ref.tmp = alloca %"struct.boost::negative_edge", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %tmp = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  %m_compare = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 6
  %m_weight = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 2
  %0 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %m_weight to %"struct.boost::put_get_helper.34"*
  %call = call i32* @_ZN5boost3getINS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES6_EES4_NS_6detail14edge_desc_implIS2_jEEEET0_RKNS_14put_get_helperISE_T_EERKT1_(%"struct.boost::put_get_helper.34"* %0, %"class.boost::detail::edge_desc_impl"* %e)
  %m_zero = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 7
  %call2 = call zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %m_compare, i32* %call, i32* %m_zero)
  br i1 %call2, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZN5boost13negative_edgeC1Ev(%"struct.boost::negative_edge"* %ref.tmp)
  invoke void @_ZN5boost15throw_exceptionINS_13negative_edgeEEEvRKT_(%"struct.boost::negative_edge"* %ref.tmp) noreturn
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.then
  unreachable

lpad:                                             ; preds = %if.then
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  call void @_ZN5boost13negative_edgeD1Ev(%"struct.boost::negative_edge"* %ref.tmp) nounwind
  br label %eh.resume

if.end:                                           ; preds = %entry
  %m_vis = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 0
  %4 = bitcast %"class.boost::dijkstra_visitor"* %m_vis to %"class.boost::bfs_visitor"*
  %5 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %6, i32 12, i32 4, i1 false)
  %7 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorINS_12null_visitorEE12examine_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSC_EESC_S9_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp, %"class.boost::bfs_visitor"* %4, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %7)
  ret void

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3
}

define linkonce_odr i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeE(%"struct.boost::two_bit_color_map"* %pm, i32 %key) inlinehint {
entry:
  %pm.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %key.addr = alloca i32, align 4
  %i = alloca i32, align 4
  %byte_num = alloca i32, align 4
  %bit_position = alloca i32, align 4
  store %"struct.boost::two_bit_color_map"* %pm, %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  store i32 %key, i32* %key.addr, align 4
  %0 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %index = getelementptr inbounds %"struct.boost::two_bit_color_map"* %0, i32 0, i32 1
  %1 = bitcast %"struct.boost::vec_adj_list_vertex_id_map"* %index to %"struct.boost::put_get_helper.35"*
  %call = call i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjjEET0_RKNS_14put_get_helperIS4_T_EERKT1_(%"struct.boost::put_get_helper.35"* %1, i32* %key.addr)
  store i32 %call, i32* %i, align 4
  %2 = load i32* %i, align 4
  %3 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %n = getelementptr inbounds %"struct.boost::two_bit_color_map"* %3, i32 0, i32 0
  %4 = load i32* %n, align 4
  %cmp = icmp ult i32 %2, %4
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  br label %cond.end

cond.false:                                       ; preds = %entry
  call void @__assert_fail(i8* getelementptr inbounds ([22 x i8]* @.str22, i32 0, i32 0), i8* getelementptr inbounds ([60 x i8]* @.str23, i32 0, i32 0), i32 72, i8* getelementptr inbounds ([201 x i8]* @__PRETTY_FUNCTION__._ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeE, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end

cond.end:                                         ; preds = %5, %cond.true
  %6 = load i32* %i, align 4
  %div = udiv i32 %6, 4
  store i32 %div, i32* %byte_num, align 4
  %7 = load i32* %i, align 4
  %rem = urem i32 %7, 4
  %mul = mul i32 %rem, 2
  store i32 %mul, i32* %bit_position, align 4
  %8 = load i32* %byte_num, align 4
  %9 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %9, i32 0, i32 2
  %call1 = call i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data)
  %arrayidx = getelementptr inbounds i8* %call1, i32 %8
  %10 = load i8* %arrayidx, align 1
  %conv = zext i8 %10 to i32
  %11 = load i32* %bit_position, align 4
  %shr = ashr i32 %conv, %11
  %and = and i32 %shr, 3
  ret i32 %and
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E9tree_edgeINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %decreased = alloca i8, align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp4 = alloca %"class.boost::detail::edge_desc_impl", align 4
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %m_weight = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 2
  %m_predecessor = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 3
  %m_distance = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 4
  %m_combine = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 5
  %m_compare = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 6
  %call = call zeroext i1 @_ZN5boost5relaxINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EEPjPiNS_11closed_plusIiEESt4lessIiEEEbNS_12graph_traitsIT_E15edge_descriptorERKSN_RKT0_RT1_RT2_RKT3_RKT4_(%"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2, %"struct.boost::adj_list_edge_property_map.33"* %m_weight, i32** %m_predecessor, i32** %m_distance, %"struct.boost::closed_plus"* %m_combine, %"struct.std::less"* %m_compare)
  %frombool = zext i1 %call to i8
  store i8 %frombool, i8* %decreased, align 1
  %3 = load i8* %decreased, align 1
  %tobool = trunc i8 %3 to i1
  br i1 %tobool, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %m_vis = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 0
  %4 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %5 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 12, i32 4, i1 false)
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost16dijkstra_visitorINS_12null_visitorEE12edge_relaxedINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSC_EESC_S9_EEEEvT_RT0_(%"class.boost::dijkstra_visitor"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %6)
  br label %if.end

if.else:                                          ; preds = %entry
  %m_vis3 = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 0
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp4 to i8*
  %8 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %7, i8* %8, i32 12, i32 4, i1 false)
  %9 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost16dijkstra_visitorINS_12null_visitorEE16edge_not_relaxedINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSC_EESC_S9_EEEEvT_RT0_(%"class.boost::dijkstra_visitor"* %m_vis3, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp4, %"class.boost::adjacency_list"* %9)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then
  ret void
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E13non_tree_edgeINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4, %"class.boost::adjacency_list"*) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E11gray_targetINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %old_distance = alloca i32, align 4
  %decreased = alloca i8, align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp6 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp8 = alloca %"class.boost::detail::edge_desc_impl", align 4
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  %m_distance = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 4
  %0 = load i32** %m_distance, align 4
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call = call i32 @_ZN5boost6targetINS_12directed_tagEjNS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EET0_RKNS_6detail9edge_baseIT_S9_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %1, %"class.boost::adjacency_list"* %2)
  %call2 = call i32* @_Z3getIiERKT_PS1_i(i32* %0, i32 %call)
  %3 = load i32* %call2
  store i32 %3, i32* %old_distance, align 4
  %4 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %5 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 12, i32 4, i1 false)
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %m_weight = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 2
  %m_predecessor = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 3
  %m_distance3 = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 4
  %m_combine = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 5
  %m_compare = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 6
  %call4 = call zeroext i1 @_ZN5boost5relaxINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EEPjPiNS_11closed_plusIiEESt4lessIiEEEbNS_12graph_traitsIT_E15edge_descriptorERKSN_RKT0_RT1_RT2_RKT3_RKT4_(%"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %6, %"struct.boost::adj_list_edge_property_map.33"* %m_weight, i32** %m_predecessor, i32** %m_distance3, %"struct.boost::closed_plus"* %m_combine, %"struct.std::less"* %m_compare)
  %frombool = zext i1 %call4 to i8
  store i8 %frombool, i8* %decreased, align 1
  %7 = load i8* %decreased, align 1
  %tobool = trunc i8 %7 to i1
  br i1 %tobool, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %m_Q = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 1
  %ref = load %"class.boost::d_ary_heap_indirect"** %m_Q, align 4
  %8 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %9 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call5 = call i32 @_ZN5boost6targetINS_12directed_tagEjNS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EET0_RKNS_6detail9edge_baseIT_S9_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %8, %"class.boost::adjacency_list"* %9)
  %10 = load i32* %old_distance, align 4
  call void @_ZN5boost21dijkstra_queue_updateINS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEEjiEEvRT_T0_T1_(%"class.boost::d_ary_heap_indirect"* %ref, i32 %call5, i32 %10)
  %m_vis = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 0
  %11 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp6 to i8*
  %12 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %11, i8* %12, i32 12, i32 4, i1 false)
  %13 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost16dijkstra_visitorINS_12null_visitorEE12edge_relaxedINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSC_EESC_S9_EEEEvT_RT0_(%"class.boost::dijkstra_visitor"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp6, %"class.boost::adjacency_list"* %13)
  br label %if.end

if.else:                                          ; preds = %entry
  %m_vis7 = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 0
  %14 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp8 to i8*
  %15 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %14, i8* %15, i32 12, i32 4, i1 false)
  %16 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost16dijkstra_visitorINS_12null_visitorEE16edge_not_relaxedINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSC_EESC_S9_EEEEvT_RT0_(%"class.boost::dijkstra_visitor"* %m_vis7, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp8, %"class.boost::adjacency_list"* %16)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then
  ret void
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E12black_targetINS0_14edge_desc_implISL_jEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_S10_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4, %"class.boost::adjacency_list"*) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  ret void
}

define linkonce_odr i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5blackEv() nounwind align 2 {
entry:
  ret i32 3
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_E13finish_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSES9_SQ_S9_SY_EEEEvT_RT0_(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tmp = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::dijkstra_visitor"* %m_vis to %"class.boost::bfs_visitor"*
  %1 = load i32* %u.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorINS_12null_visitorEE13finish_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS8_EES8_S5_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp, %"class.boost::bfs_visitor"* %0, i32 %1, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorINS_12null_visitorEE13finish_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS8_EES8_S5_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_finish_vertex", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_16on_finish_vertexEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_16on_finish_vertexEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %v, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %"struct.boost::null_visitor"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_finish_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"struct.boost::null_visitor"* %v, %"struct.boost::null_visitor"** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::null_visitor"** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%"struct.boost::null_visitor"* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%"struct.boost::null_visitor"*, i32, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %"struct.boost::null_visitor"*, align 4
  %.addr1 = alloca i32, align 4
  %.addr2 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_", align 1
  store %"struct.boost::null_visitor"* %0, %"struct.boost::null_visitor"** %.addr, align 4
  store i32 %1, i32* %.addr1, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr2, align 4
  ret void
}

define linkonce_odr i32* @_Z3getIiERKT_PS1_i(i32* %pa, i32 %k) nounwind inlinehint {
entry:
  %pa.addr = alloca i32*, align 4
  %k.addr = alloca i32, align 4
  store i32* %pa, i32** %pa.addr, align 4
  store i32 %k, i32* %k.addr, align 4
  %0 = load i32* %k.addr, align 4
  %1 = load i32** %pa.addr, align 4
  %arrayidx = getelementptr inbounds i32* %1, i32 %0
  ret i32* %arrayidx
}

define linkonce_odr zeroext i1 @_ZN5boost5relaxINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKS8_S7_EEPjPiNS_11closed_plusIiEESt4lessIiEEEbNS_12graph_traitsIT_E15edge_descriptorERKSN_RKT0_RT1_RT2_RKT3_RKT4_(%"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g, %"struct.boost::adj_list_edge_property_map.33"* %w, i32** %p, i32** %d, %"struct.boost::closed_plus"* %combine, %"struct.std::less"* %compare) {
entry:
  %retval = alloca i1, align 1
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %w.addr = alloca %"struct.boost::adj_list_edge_property_map.33"*, align 4
  %p.addr = alloca i32**, align 4
  %d.addr = alloca i32**, align 4
  %combine.addr = alloca %"struct.boost::closed_plus"*, align 4
  %compare.addr = alloca %"struct.std::less"*, align 4
  %is_undirected = alloca i8, align 1
  %u = alloca i32, align 4
  %v = alloca i32, align 4
  %d_u = alloca i32, align 4
  %d_v = alloca i32, align 4
  %w_e = alloca i32*, align 4
  %ref.tmp = alloca i32, align 4
  %ref.tmp8 = alloca i32, align 4
  %ref.tmp14 = alloca i32, align 4
  %ref.tmp18 = alloca i32, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store %"struct.boost::adj_list_edge_property_map.33"* %w, %"struct.boost::adj_list_edge_property_map.33"** %w.addr, align 4
  store i32** %p, i32*** %p.addr, align 4
  store i32** %d, i32*** %d.addr, align 4
  store %"struct.boost::closed_plus"* %combine, %"struct.boost::closed_plus"** %combine.addr, align 4
  store %"struct.std::less"* %compare, %"struct.std::less"** %compare.addr, align 4
  store i8 0, i8* %is_undirected, align 1
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call = call i32 @_ZN5boost6sourceINS_12directed_tagEjNS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EET0_RKNS_6detail9edge_baseIT_S9_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %0, %"class.boost::adjacency_list"* %1)
  store i32 %call, i32* %u, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call1 = call i32 @_ZN5boost6targetINS_12directed_tagEjNS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EET0_RKNS_6detail9edge_baseIT_S9_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %2, %"class.boost::adjacency_list"* %3)
  store i32 %call1, i32* %v, align 4
  %4 = load i32*** %d.addr, align 4
  %5 = load i32** %4, align 4
  %6 = load i32* %u, align 4
  %call2 = call i32* @_Z3getIiERKT_PS1_i(i32* %5, i32 %6)
  %7 = load i32* %call2
  store i32 %7, i32* %d_u, align 4
  %8 = load i32*** %d.addr, align 4
  %9 = load i32** %8, align 4
  %10 = load i32* %v, align 4
  %call3 = call i32* @_Z3getIiERKT_PS1_i(i32* %9, i32 %10)
  %11 = load i32* %call3
  store i32 %11, i32* %d_v, align 4
  %12 = load %"struct.boost::adj_list_edge_property_map.33"** %w.addr, align 4
  %13 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %12 to %"struct.boost::put_get_helper.34"*
  %call4 = call i32* @_ZN5boost3getINS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES6_EES4_NS_6detail14edge_desc_implIS2_jEEEET0_RKNS_14put_get_helperISE_T_EERKT1_(%"struct.boost::put_get_helper.34"* %13, %"class.boost::detail::edge_desc_impl"* %e)
  store i32* %call4, i32** %w_e, align 4
  %14 = load %"struct.std::less"** %compare.addr, align 4
  %15 = load %"struct.boost::closed_plus"** %combine.addr, align 4
  %16 = load i32** %w_e, align 4
  %call5 = call i32 @_ZNK5boost11closed_plusIiEclERKiS3_(%"struct.boost::closed_plus"* %15, i32* %d_u, i32* %16)
  store i32 %call5, i32* %ref.tmp, align 4
  %call6 = call zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %14, i32* %ref.tmp, i32* %d_v)
  br i1 %call6, label %if.then, label %if.else12

if.then:                                          ; preds = %entry
  %17 = load i32*** %d.addr, align 4
  %18 = load i32** %17, align 4
  %19 = load i32* %v, align 4
  %20 = load %"struct.boost::closed_plus"** %combine.addr, align 4
  %21 = load i32** %w_e, align 4
  %call7 = call i32 @_ZNK5boost11closed_plusIiEclERKiS3_(%"struct.boost::closed_plus"* %20, i32* %d_u, i32* %21)
  store i32 %call7, i32* %ref.tmp8, align 4
  call void @_Z3putIiiEvPT_iRKT0_(i32* %18, i32 %19, i32* %ref.tmp8)
  %22 = load %"struct.std::less"** %compare.addr, align 4
  %23 = load i32*** %d.addr, align 4
  %24 = load i32** %23, align 4
  %25 = load i32* %v, align 4
  %call9 = call i32* @_Z3getIiERKT_PS1_i(i32* %24, i32 %25)
  %call10 = call zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %22, i32* %call9, i32* %d_v)
  br i1 %call10, label %if.then11, label %if.else

if.then11:                                        ; preds = %if.then
  %26 = load i32*** %p.addr, align 4
  %27 = load i32** %26, align 4
  %28 = load i32* %v, align 4
  call void @_Z3putIjjEvPT_iRKT0_(i32* %27, i32 %28, i32* %u)
  store i1 true, i1* %retval
  br label %return

if.else:                                          ; preds = %if.then
  store i1 false, i1* %retval
  br label %return

if.else12:                                        ; preds = %entry
  %29 = load i8* %is_undirected, align 1
  %tobool = trunc i8 %29 to i1
  br i1 %tobool, label %land.lhs.true, label %if.else23

land.lhs.true:                                    ; preds = %if.else12
  %30 = load %"struct.std::less"** %compare.addr, align 4
  %31 = load %"struct.boost::closed_plus"** %combine.addr, align 4
  %32 = load i32** %w_e, align 4
  %call13 = call i32 @_ZNK5boost11closed_plusIiEclERKiS3_(%"struct.boost::closed_plus"* %31, i32* %d_v, i32* %32)
  store i32 %call13, i32* %ref.tmp14, align 4
  %call15 = call zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %30, i32* %ref.tmp14, i32* %d_u)
  br i1 %call15, label %if.then16, label %if.else23

if.then16:                                        ; preds = %land.lhs.true
  %33 = load i32*** %d.addr, align 4
  %34 = load i32** %33, align 4
  %35 = load i32* %u, align 4
  %36 = load %"struct.boost::closed_plus"** %combine.addr, align 4
  %37 = load i32** %w_e, align 4
  %call17 = call i32 @_ZNK5boost11closed_plusIiEclERKiS3_(%"struct.boost::closed_plus"* %36, i32* %d_v, i32* %37)
  store i32 %call17, i32* %ref.tmp18, align 4
  call void @_Z3putIiiEvPT_iRKT0_(i32* %34, i32 %35, i32* %ref.tmp18)
  %38 = load %"struct.std::less"** %compare.addr, align 4
  %39 = load i32*** %d.addr, align 4
  %40 = load i32** %39, align 4
  %41 = load i32* %u, align 4
  %call19 = call i32* @_Z3getIiERKT_PS1_i(i32* %40, i32 %41)
  %call20 = call zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %38, i32* %call19, i32* %d_u)
  br i1 %call20, label %if.then21, label %if.else22

if.then21:                                        ; preds = %if.then16
  %42 = load i32*** %p.addr, align 4
  %43 = load i32** %42, align 4
  %44 = load i32* %u, align 4
  call void @_Z3putIjjEvPT_iRKT0_(i32* %43, i32 %44, i32* %v)
  store i1 true, i1* %retval
  br label %return

if.else22:                                        ; preds = %if.then16
  store i1 false, i1* %retval
  br label %return

if.else23:                                        ; preds = %land.lhs.true, %if.else12
  store i1 false, i1* %retval
  br label %return

return:                                           ; preds = %if.else23, %if.else22, %if.then21, %if.else, %if.then11
  %45 = load i1* %retval
  ret i1 %45
}

define linkonce_odr void @_ZN5boost21dijkstra_queue_updateINS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEEjiEEvRT_T0_T1_(%"class.boost::d_ary_heap_indirect"* %Q, i32 %vertex, i32 %old_distance) inlinehint {
entry:
  %Q.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %vertex.addr = alloca i32, align 4
  %old_distance.addr = alloca i32, align 4
  store %"class.boost::d_ary_heap_indirect"* %Q, %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  store i32 %vertex, i32* %vertex.addr, align 4
  store i32 %old_distance, i32* %old_distance.addr, align 4
  %0 = load %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE6updateERKj(%"class.boost::d_ary_heap_indirect"* %0, i32* %vertex.addr)
  ret void
}

define linkonce_odr void @_ZN5boost16dijkstra_visitorINS_12null_visitorEE12edge_relaxedINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSC_EESC_S9_EEEEvT_RT0_(%"class.boost::dijkstra_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dijkstra_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_edge_relaxed", align 1
  store %"class.boost::dijkstra_visitor"* %this, %"class.boost::dijkstra_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dijkstra_visitor"** %this.addr
  %0 = bitcast %"class.boost::dijkstra_visitor"* %this1 to %"class.boost::bfs_visitor"*
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsINS_12null_visitorENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EENS_15on_edge_relaxedEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost16dijkstra_visitorINS_12null_visitorEE16edge_not_relaxedINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSC_EESC_S9_EEEEvT_RT0_(%"class.boost::dijkstra_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dijkstra_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_edge_not_relaxed", align 1
  store %"class.boost::dijkstra_visitor"* %this, %"class.boost::dijkstra_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dijkstra_visitor"** %this.addr
  %0 = bitcast %"class.boost::dijkstra_visitor"* %this1 to %"class.boost::bfs_visitor"*
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsINS_12null_visitorENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EENS_19on_edge_not_relaxedEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsINS_12null_visitorENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EENS_19on_edge_not_relaxedEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %"struct.boost::null_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_edge_not_relaxed", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"struct.boost::null_visitor"* %v, %"struct.boost::null_visitor"** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::null_visitor"** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchINS_12null_visitorENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%"struct.boost::null_visitor"* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchINS_12null_visitorENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%"struct.boost::null_visitor"*, %"class.boost::detail::edge_desc_impl"* byval align 4, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %"struct.boost::null_visitor"*, align 4
  %.addr1 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_", align 1
  store %"struct.boost::null_visitor"* %0, %"struct.boost::null_visitor"** %.addr, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr1, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsINS_12null_visitorENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EENS_15on_edge_relaxedEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %"struct.boost::null_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_edge_relaxed", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"struct.boost::null_visitor"* %v, %"struct.boost::null_visitor"** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::null_visitor"** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchINS_12null_visitorENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%"struct.boost::null_visitor"* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE6updateERKj(%"class.boost::d_ary_heap_indirect"* %this, i32* %v) align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %v.addr = alloca i32*, align 4
  %index = alloca i32, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %index_in_heap = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 3
  %0 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap to %"struct.boost::put_get_helper.39"*
  %1 = load i32** %v.addr, align 4
  %call = call i32* @_ZN5boost3getINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jEET0_RKNS_14put_get_helperIS8_T_EERKT1_(%"struct.boost::put_get_helper.39"* %0, i32* %1)
  %2 = load i32* %call
  store i32 %2, i32* %index, align 4
  %3 = load i32* %index, align 4
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE25preserve_heap_property_upEj(%"class.boost::d_ary_heap_indirect"* %this1, i32 %3)
  call void @_ZNK5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE11verify_heapEv(%"class.boost::d_ary_heap_indirect"* %this1)
  ret void
}

define linkonce_odr i32* @_ZN5boost3getINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jEET0_RKNS_14put_get_helperIS8_T_EERKT1_(%"struct.boost::put_get_helper.39"* %pa, i32* %k) inlinehint {
entry:
  %pa.addr = alloca %"struct.boost::put_get_helper.39"*, align 4
  %k.addr = alloca i32*, align 4
  %v = alloca i32*, align 4
  store %"struct.boost::put_get_helper.39"* %pa, %"struct.boost::put_get_helper.39"** %pa.addr, align 4
  store i32* %k, i32** %k.addr, align 4
  %0 = load %"struct.boost::put_get_helper.39"** %pa.addr, align 4
  %1 = bitcast %"struct.boost::put_get_helper.39"* %0 to %"class.boost::iterator_property_map.38"*
  %2 = load i32** %k.addr, align 4
  %3 = load i32* %2, align 4
  %call = call i32* @_ZNK5boost21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEixEj(%"class.boost::iterator_property_map.38"* %1, i32 %3)
  store i32* %call, i32** %v, align 4
  %4 = load i32** %v, align 4
  ret i32* %4
}

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE25preserve_heap_property_upEj(%"class.boost::d_ary_heap_indirect"* %this, i32 %index) align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %index.addr = alloca i32, align 4
  %orig_index = alloca i32, align 4
  %num_levels_moved = alloca i32, align 4
  %currently_being_moved = alloca i32, align 4
  %currently_being_moved_dist = alloca i32, align 4
  %parent_index = alloca i32, align 4
  %parent_value = alloca i32, align 4
  %i = alloca i32, align 4
  %parent_index15 = alloca i32, align 4
  %parent_value17 = alloca i32, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  store i32 %index, i32* %index.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %0 = load i32* %index.addr, align 4
  store i32 %0, i32* %orig_index, align 4
  store i32 0, i32* %num_levels_moved, align 4
  %1 = load i32* %index.addr, align 4
  %cmp = icmp eq i32 %1, 0
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  br label %return

if.end:                                           ; preds = %entry
  %data = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %2 = load i32* %index.addr, align 4
  %call = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data, i32 %2)
  %3 = load i32* %call
  store i32 %3, i32* %currently_being_moved, align 4
  %distance = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 2
  %4 = load i32** %distance, align 4
  %5 = load i32* %currently_being_moved, align 4
  %call2 = call i32* @_Z3getIiERKT_PS1_i(i32* %4, i32 %5)
  %6 = load i32* %call2
  store i32 %6, i32* %currently_being_moved_dist, align 4
  br label %for.cond

for.cond:                                         ; preds = %if.then12, %if.end
  %7 = load i32* %index.addr, align 4
  %cmp3 = icmp eq i32 %7, 0
  br i1 %cmp3, label %if.then4, label %if.end5

if.then4:                                         ; preds = %for.cond
  br label %for.end

if.end5:                                          ; preds = %for.cond
  %8 = load i32* %index.addr, align 4
  %call6 = call i32 @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE6parentEj(i32 %8)
  store i32 %call6, i32* %parent_index, align 4
  %data7 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %9 = load i32* %parent_index, align 4
  %call8 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data7, i32 %9)
  %10 = load i32* %call8
  store i32 %10, i32* %parent_value, align 4
  %compare = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 0
  %distance9 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 2
  %11 = load i32** %distance9, align 4
  %12 = load i32* %parent_value, align 4
  %call10 = call i32* @_Z3getIiERKT_PS1_i(i32* %11, i32 %12)
  %call11 = call zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %compare, i32* %currently_being_moved_dist, i32* %call10)
  br i1 %call11, label %if.then12, label %if.else

if.then12:                                        ; preds = %if.end5
  %13 = load i32* %num_levels_moved, align 4
  %inc = add i32 %13, 1
  store i32 %inc, i32* %num_levels_moved, align 4
  %14 = load i32* %parent_index, align 4
  store i32 %14, i32* %index.addr, align 4
  br label %for.cond

if.else:                                          ; preds = %if.end5
  br label %for.end

for.end:                                          ; preds = %if.else, %if.then4
  %15 = load i32* %orig_index, align 4
  store i32 %15, i32* %index.addr, align 4
  store i32 0, i32* %i, align 4
  br label %for.cond13

for.cond13:                                       ; preds = %for.inc, %for.end
  %16 = load i32* %i, align 4
  %17 = load i32* %num_levels_moved, align 4
  %cmp14 = icmp ult i32 %16, %17
  br i1 %cmp14, label %for.body, label %for.end23

for.body:                                         ; preds = %for.cond13
  %18 = load i32* %index.addr, align 4
  %call16 = call i32 @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE6parentEj(i32 %18)
  store i32 %call16, i32* %parent_index15, align 4
  %data18 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %19 = load i32* %parent_index15, align 4
  %call19 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data18, i32 %19)
  %20 = load i32* %call19
  store i32 %20, i32* %parent_value17, align 4
  %index_in_heap = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 3
  %21 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap to %"struct.boost::put_get_helper.39"*
  %22 = load i32* %parent_value17, align 4
  call void @_ZN5boost3putINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jjEEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.39"* %21, i32 %22, i32* %index.addr)
  %23 = load i32* %parent_value17, align 4
  %data20 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %24 = load i32* %index.addr, align 4
  %call21 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data20, i32 %24)
  store i32 %23, i32* %call21
  %25 = load i32* %parent_index15, align 4
  store i32 %25, i32* %index.addr, align 4
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %26 = load i32* %i, align 4
  %inc22 = add i32 %26, 1
  store i32 %inc22, i32* %i, align 4
  br label %for.cond13

for.end23:                                        ; preds = %for.cond13
  %27 = load i32* %currently_being_moved, align 4
  %data24 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %28 = load i32* %index.addr, align 4
  %call25 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data24, i32 %28)
  store i32 %27, i32* %call25
  %index_in_heap26 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 3
  %29 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap26 to %"struct.boost::put_get_helper.39"*
  %30 = load i32* %currently_being_moved, align 4
  call void @_ZN5boost3putINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jjEEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.39"* %29, i32 %30, i32* %index.addr)
  call void @_ZNK5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE11verify_heapEv(%"class.boost::d_ary_heap_indirect"* %this1)
  br label %return

return:                                           ; preds = %for.end23, %if.then
  ret void
}

define linkonce_odr void @_ZNK5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE11verify_heapEv(%"class.boost::d_ary_heap_indirect"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  ret void
}

define linkonce_odr i32 @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE6parentEj(i32 %index) nounwind align 2 {
entry:
  %index.addr = alloca i32, align 4
  store i32 %index, i32* %index.addr, align 4
  %0 = load i32* %index.addr, align 4
  %sub = sub i32 %0, 1
  %div = udiv i32 %sub, 4
  ret i32 %div
}

define linkonce_odr zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %this, i32* %__x, i32* %__y) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::less"*, align 4
  %__x.addr = alloca i32*, align 4
  %__y.addr = alloca i32*, align 4
  store %"struct.std::less"* %this, %"struct.std::less"** %this.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  store i32* %__y, i32** %__y.addr, align 4
  %this1 = load %"struct.std::less"** %this.addr
  %0 = load i32** %__x.addr, align 4
  %1 = load i32* %0, align 4
  %2 = load i32** %__y.addr, align 4
  %3 = load i32* %2, align 4
  %cmp = icmp slt i32 %1, %3
  ret i1 %cmp
}

define linkonce_odr void @_ZN5boost3putINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jjEEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.39"* %pa, i32 %k, i32* %v) inlinehint {
entry:
  %pa.addr = alloca %"struct.boost::put_get_helper.39"*, align 4
  %k.addr = alloca i32, align 4
  %v.addr = alloca i32*, align 4
  store %"struct.boost::put_get_helper.39"* %pa, %"struct.boost::put_get_helper.39"** %pa.addr, align 4
  store i32 %k, i32* %k.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  %0 = load i32** %v.addr, align 4
  %1 = load i32* %0, align 4
  %2 = load %"struct.boost::put_get_helper.39"** %pa.addr, align 4
  %3 = bitcast %"struct.boost::put_get_helper.39"* %2 to %"class.boost::iterator_property_map.38"*
  %4 = load i32* %k.addr, align 4
  %call = call i32* @_ZNK5boost21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEixEj(%"class.boost::iterator_property_map.38"* %3, i32 %4)
  store i32 %1, i32* %call
  ret void
}

define linkonce_odr i32* @_ZNK5boost21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEixEj(%"class.boost::iterator_property_map.38"* %this, i32 %v) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_property_map.38"*, align 4
  %v.addr = alloca i32, align 4
  store %"class.boost::iterator_property_map.38"* %this, %"class.boost::iterator_property_map.38"** %this.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  %this1 = load %"class.boost::iterator_property_map.38"** %this.addr
  %iter = getelementptr inbounds %"class.boost::iterator_property_map.38"* %this1, i32 0, i32 0
  %0 = load i32** %iter, align 4
  %index = getelementptr inbounds %"class.boost::iterator_property_map.38"* %this1, i32 0, i32 1
  %1 = bitcast %"struct.boost::vec_adj_list_vertex_id_map"* %index to %"struct.boost::put_get_helper.35"*
  %call = call i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjjEET0_RKNS_14put_get_helperIS4_T_EERKT1_(%"struct.boost::put_get_helper.35"* %1, i32* %v.addr)
  %add.ptr = getelementptr inbounds i32* %0, i32 %call
  ret i32* %add.ptr
}

define linkonce_odr i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjjEET0_RKNS_14put_get_helperIS4_T_EERKT1_(%"struct.boost::put_get_helper.35"* %pa, i32* %k) inlinehint {
entry:
  %pa.addr = alloca %"struct.boost::put_get_helper.35"*, align 4
  %k.addr = alloca i32*, align 4
  %v = alloca i32, align 4
  store %"struct.boost::put_get_helper.35"* %pa, %"struct.boost::put_get_helper.35"** %pa.addr, align 4
  store i32* %k, i32** %k.addr, align 4
  %0 = load %"struct.boost::put_get_helper.35"** %pa.addr, align 4
  %1 = bitcast %"struct.boost::put_get_helper.35"* %0 to %"struct.boost::vec_adj_list_vertex_id_map"*
  %2 = load i32** %k.addr, align 4
  %3 = load i32* %2, align 4
  %call = call i32 @_ZNK5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEixEj(%"struct.boost::vec_adj_list_vertex_id_map"* %1, i32 %3)
  store i32 %call, i32* %v, align 4
  %4 = load i32* %v, align 4
  ret i32 %4
}

define linkonce_odr i32 @_ZNK5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEixEj(%"struct.boost::vec_adj_list_vertex_id_map"* %this, i32 %v) nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %v.addr = alloca i32, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %this, %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  %this1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr
  %0 = load i32* %v.addr, align 4
  ret i32 %0
}

define linkonce_odr i32* @_ZN5boost3getINS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES6_EES4_NS_6detail14edge_desc_implIS2_jEEEET0_RKNS_14put_get_helperISE_T_EERKT1_(%"struct.boost::put_get_helper.34"* %pa, %"class.boost::detail::edge_desc_impl"* %k) inlinehint {
entry:
  %pa.addr = alloca %"struct.boost::put_get_helper.34"*, align 4
  %k.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %v = alloca i32*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  store %"struct.boost::put_get_helper.34"* %pa, %"struct.boost::put_get_helper.34"** %pa.addr, align 4
  store %"class.boost::detail::edge_desc_impl"* %k, %"class.boost::detail::edge_desc_impl"** %k.addr, align 4
  %0 = load %"struct.boost::put_get_helper.34"** %pa.addr, align 4
  %1 = bitcast %"struct.boost::put_get_helper.34"* %0 to %"struct.boost::adj_list_edge_property_map.33"*
  %2 = load %"class.boost::detail::edge_desc_impl"** %k.addr, align 4
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %4 = bitcast %"class.boost::detail::edge_desc_impl"* %2 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 12, i32 4, i1 false)
  %call = call i32* @_ZNK5boost26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES5_EixENS_6detail14edge_desc_implIS1_jEE(%"struct.boost::adj_list_edge_property_map.33"* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp)
  store i32* %call, i32** %v, align 4
  %5 = load i32** %v, align 4
  ret i32* %5
}

define linkonce_odr i32 @_ZNK5boost11closed_plusIiEclERKiS3_(%"struct.boost::closed_plus"* %this, i32* %a, i32* %b) nounwind align 2 {
entry:
  %retval = alloca i32, align 4
  %this.addr = alloca %"struct.boost::closed_plus"*, align 4
  %a.addr = alloca i32*, align 4
  %b.addr = alloca i32*, align 4
  store %"struct.boost::closed_plus"* %this, %"struct.boost::closed_plus"** %this.addr, align 4
  store i32* %a, i32** %a.addr, align 4
  store i32* %b, i32** %b.addr, align 4
  %this1 = load %"struct.boost::closed_plus"** %this.addr
  %0 = load i32** %a.addr, align 4
  %1 = load i32* %0, align 4
  %inf = getelementptr inbounds %"struct.boost::closed_plus"* %this1, i32 0, i32 0
  %2 = load i32* %inf, align 4
  %cmp = icmp eq i32 %1, %2
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %inf2 = getelementptr inbounds %"struct.boost::closed_plus"* %this1, i32 0, i32 0
  %3 = load i32* %inf2, align 4
  store i32 %3, i32* %retval
  br label %return

if.end:                                           ; preds = %entry
  %4 = load i32** %b.addr, align 4
  %5 = load i32* %4, align 4
  %inf3 = getelementptr inbounds %"struct.boost::closed_plus"* %this1, i32 0, i32 0
  %6 = load i32* %inf3, align 4
  %cmp4 = icmp eq i32 %5, %6
  br i1 %cmp4, label %if.then5, label %if.end7

if.then5:                                         ; preds = %if.end
  %inf6 = getelementptr inbounds %"struct.boost::closed_plus"* %this1, i32 0, i32 0
  %7 = load i32* %inf6, align 4
  store i32 %7, i32* %retval
  br label %return

if.end7:                                          ; preds = %if.end
  %8 = load i32** %a.addr, align 4
  %9 = load i32* %8, align 4
  %10 = load i32** %b.addr, align 4
  %11 = load i32* %10, align 4
  %add = add nsw i32 %9, %11
  store i32 %add, i32* %retval
  br label %return

return:                                           ; preds = %if.end7, %if.then5, %if.then
  %12 = load i32* %retval
  ret i32 %12
}

define linkonce_odr i32* @_ZNK5boost26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES5_EixENS_6detail14edge_desc_implIS1_jEE(%"struct.boost::adj_list_edge_property_map.33"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e) inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::adj_list_edge_property_map.33"*, align 4
  %p = alloca %"struct.boost::property"*, align 4
  store %"struct.boost::adj_list_edge_property_map.33"* %this, %"struct.boost::adj_list_edge_property_map.33"** %this.addr, align 4
  %this1 = load %"struct.boost::adj_list_edge_property_map.33"** %this.addr
  %call = call i8* @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjE12get_propertyEv(%"class.boost::detail::edge_desc_impl"* %e)
  %0 = bitcast i8* %call to %"struct.boost::property"*
  store %"struct.boost::property"* %0, %"struct.boost::property"** %p, align 4
  %1 = load %"struct.boost::property"** %p, align 4
  %tag = getelementptr inbounds %"struct.boost::adj_list_edge_property_map.33"* %this1, i32 0, i32 0
  %2 = load i32* %tag, align 4
  %call2 = call i32* @_ZN5boost18get_property_valueINS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES2_EERKNS_19lookup_one_propertyIT_T0_E4typeERKS6_S7_(%"struct.boost::property"* %1, i32 %2)
  ret i32* %call2
}

define linkonce_odr i32* @_ZN5boost18get_property_valueINS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES2_EERKNS_19lookup_one_propertyIT_T0_E4typeERKS6_S7_(%"struct.boost::property"* %p, i32 %tag) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::property"*, align 4
  %tag.addr = alloca i32, align 4
  store %"struct.boost::property"* %p, %"struct.boost::property"** %p.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %0 = load %"struct.boost::property"** %p.addr, align 4
  %call = call i32* @_ZN5boost28lookup_one_property_internalINS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES2_vE6lookupIS4_EENS_9enable_ifINS_7is_sameIS4_T_EERKiE4typeERKS9_RKS2_(%"struct.boost::property"* %0, i32* %tag.addr)
  ret i32* %call
}

define linkonce_odr i32* @_ZN5boost28lookup_one_property_internalINS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES2_vE6lookupIS4_EENS_9enable_ifINS_7is_sameIS4_T_EERKiE4typeERKS9_RKS2_(%"struct.boost::property"* %prop, i32*) nounwind align 2 {
entry:
  %prop.addr = alloca %"struct.boost::property"*, align 4
  %.addr = alloca i32*, align 4
  store %"struct.boost::property"* %prop, %"struct.boost::property"** %prop.addr, align 4
  store i32* %0, i32** %.addr, align 4
  %1 = load %"struct.boost::property"** %prop.addr, align 4
  %m_value = getelementptr inbounds %"struct.boost::property"* %1, i32 0, i32 0
  ret i32* %m_value
}

define linkonce_odr i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %px = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 0
  %0 = load i8** %px, align 4
  ret i8* %0
}

define linkonce_odr void @_ZN5boost15throw_exceptionINS_13negative_edgeEEEvRKT_(%"struct.boost::negative_edge"* %e) noreturn inlinehint {
entry:
  %e.addr = alloca %"struct.boost::negative_edge"*, align 4
  %ref.tmp = alloca %"struct.boost::exception_detail::error_info_injector", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %cleanup.isactive = alloca i1
  store %"struct.boost::negative_edge"* %e, %"struct.boost::negative_edge"** %e.addr, align 4
  %0 = load %"struct.boost::negative_edge"** %e.addr, align 4
  %1 = bitcast %"struct.boost::negative_edge"* %0 to %"class.std::exception"*
  call void @_ZN5boost36throw_exception_assert_compatibilityERKSt9exception(%"class.std::exception"* %1)
  %exception = call i8* @__cxa_allocate_exception(i32 32) nounwind
  store i1 true, i1* %cleanup.isactive
  %2 = bitcast i8* %exception to %"class.boost::exception_detail::clone_impl"*
  %3 = load %"struct.boost::negative_edge"** %e.addr, align 4
  invoke void @_ZN5boost17enable_error_infoINS_13negative_edgeEEENS_16exception_detail29enable_error_info_return_typeIT_E4typeERKS4_(%"struct.boost::exception_detail::error_info_injector"* sret %ref.tmp, %"struct.boost::negative_edge"* %3)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZN5boost24enable_current_exceptionINS_16exception_detail19error_info_injectorINS_13negative_edgeEEEEENS1_10clone_implIT_EERKS6_(%"class.boost::exception_detail::clone_impl"* sret %2, %"struct.boost::exception_detail::error_info_injector"* %ref.tmp)
          to label %invoke.cont2 unwind label %lpad1

invoke.cont2:                                     ; preds = %invoke.cont
  store i1 false, i1* %cleanup.isactive
  invoke void @__cxa_throw(i8* %exception, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev to i8*)) noreturn
          to label %unreachable unwind label %lpad1

lpad:                                             ; preds = %entry
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %5 = extractvalue { i8*, i32 } %4, 0
  store i8* %5, i8** %exn.slot
  %6 = extractvalue { i8*, i32 } %4, 1
  store i32 %6, i32* %ehselector.slot
  br label %ehcleanup

lpad1:                                            ; preds = %invoke.cont2, %invoke.cont
  %7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %8 = extractvalue { i8*, i32 } %7, 0
  store i8* %8, i8** %exn.slot
  %9 = extractvalue { i8*, i32 } %7, 1
  store i32 %9, i32* %ehselector.slot
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED1Ev(%"struct.boost::exception_detail::error_info_injector"* %ref.tmp) nounwind
  br label %ehcleanup

ehcleanup:                                        ; preds = %lpad1, %lpad
  %cleanup.is_active = load i1* %cleanup.isactive
  br i1 %cleanup.is_active, label %cleanup.action, label %cleanup.done

cleanup.action:                                   ; preds = %ehcleanup
  call void @__cxa_free_exception(i8* %exception) nounwind
  br label %cleanup.done

cleanup.done:                                     ; preds = %cleanup.action, %ehcleanup
  br label %eh.resume

return:                                           ; No predecessors!
  ret void

eh.resume:                                        ; preds = %cleanup.done
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

unreachable:                                      ; preds = %invoke.cont2
  unreachable
}

define linkonce_odr void @_ZN5boost13negative_edgeC1Ev(%"struct.boost::negative_edge"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::negative_edge"*, align 4
  store %"struct.boost::negative_edge"* %this, %"struct.boost::negative_edge"** %this.addr, align 4
  %this1 = load %"struct.boost::negative_edge"** %this.addr
  call void @_ZN5boost13negative_edgeC2Ev(%"struct.boost::negative_edge"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost13negative_edgeD1Ev(%"struct.boost::negative_edge"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::negative_edge"*, align 4
  store %"struct.boost::negative_edge"* %this, %"struct.boost::negative_edge"** %this.addr, align 4
  %this1 = load %"struct.boost::negative_edge"** %this.addr
  call void @_ZN5boost13negative_edgeD2Ev(%"struct.boost::negative_edge"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorINS_12null_visitorEE12examine_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSC_EESC_S9_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_examine_edge", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsINS_12null_visitorENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EENS_15on_examine_edgeEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsINS_12null_visitorENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EENS_15on_examine_edgeEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %"struct.boost::null_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_examine_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"struct.boost::null_visitor"* %v, %"struct.boost::null_visitor"** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::null_visitor"** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchINS_12null_visitorENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiSA_EESA_S7_EEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%"struct.boost::null_visitor"* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost13negative_edgeD2Ev(%"struct.boost::negative_edge"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::negative_edge"*, align 4
  store %"struct.boost::negative_edge"* %this, %"struct.boost::negative_edge"** %this.addr, align 4
  %this1 = load %"struct.boost::negative_edge"** %this.addr
  %0 = bitcast %"struct.boost::negative_edge"* %this1 to %"struct.boost::bad_graph"*
  call void @_ZN5boost9bad_graphD2Ev(%"struct.boost::bad_graph"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost9bad_graphD2Ev(%"struct.boost::bad_graph"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::bad_graph"*, align 4
  store %"struct.boost::bad_graph"* %this, %"struct.boost::bad_graph"** %this.addr, align 4
  %this1 = load %"struct.boost::bad_graph"** %this.addr
  %0 = bitcast %"struct.boost::bad_graph"* %this1 to %"class.std::invalid_argument"*
  call void @_ZNSt16invalid_argumentD2Ev(%"class.std::invalid_argument"* %0) nounwind
  ret void
}

declare void @_ZNSt16invalid_argumentD2Ev(%"class.std::invalid_argument"*) nounwind

define linkonce_odr void @_ZN5boost13negative_edgeC2Ev(%"struct.boost::negative_edge"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::negative_edge"*, align 4
  %ref.tmp = alloca %"class.std::basic_string", align 4
  %ref.tmp2 = alloca %"class.std::allocator.43", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.boost::negative_edge"* %this, %"struct.boost::negative_edge"** %this.addr, align 4
  %this1 = load %"struct.boost::negative_edge"** %this.addr
  %0 = bitcast %"struct.boost::negative_edge"* %this1 to %"struct.boost::bad_graph"*
  call void @_ZNSaIcEC1Ev(%"class.std::allocator.43"* %ref.tmp2) nounwind
  invoke void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* %ref.tmp, i8* getelementptr inbounds ([56 x i8]* @.str24, i32 0, i32 0), %"class.std::allocator.43"* %ref.tmp2)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZN5boost9bad_graphC2ERKSs(%"struct.boost::bad_graph"* %0, %"class.std::basic_string"* %ref.tmp)
          to label %invoke.cont4 unwind label %lpad3

invoke.cont4:                                     ; preds = %invoke.cont
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %ref.tmp)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont4
  call void @_ZNSaIcED1Ev(%"class.std::allocator.43"* %ref.tmp2) nounwind
  %1 = bitcast %"struct.boost::negative_edge"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost13negative_edgeE, i64 0, i64 2), i8*** %1
  ret void

lpad:                                             ; preds = %invoke.cont4, %entry
  %2 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %3 = extractvalue { i8*, i32 } %2, 0
  store i8* %3, i8** %exn.slot
  %4 = extractvalue { i8*, i32 } %2, 1
  store i32 %4, i32* %ehselector.slot
  br label %ehcleanup

lpad3:                                            ; preds = %invoke.cont
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %ref.tmp)
          to label %invoke.cont6 unwind label %terminate.lpad

invoke.cont6:                                     ; preds = %lpad3
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont6, %lpad
  call void @_ZNSaIcED1Ev(%"class.std::allocator.43"* %ref.tmp2) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %ehcleanup
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7

terminate.lpad:                                   ; preds = %lpad3
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost9bad_graphC2ERKSs(%"struct.boost::bad_graph"* %this, %"class.std::basic_string"* %what_arg) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::bad_graph"*, align 4
  %what_arg.addr = alloca %"class.std::basic_string"*, align 4
  store %"struct.boost::bad_graph"* %this, %"struct.boost::bad_graph"** %this.addr, align 4
  store %"class.std::basic_string"* %what_arg, %"class.std::basic_string"** %what_arg.addr, align 4
  %this1 = load %"struct.boost::bad_graph"** %this.addr
  %0 = bitcast %"struct.boost::bad_graph"* %this1 to %"class.std::invalid_argument"*
  %1 = load %"class.std::basic_string"** %what_arg.addr, align 4
  call void @_ZNSt16invalid_argumentC2ERKSs(%"class.std::invalid_argument"* %0, %"class.std::basic_string"* %1)
  %2 = bitcast %"struct.boost::bad_graph"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost9bad_graphE, i64 0, i64 2), i8*** %2
  ret void
}

declare void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"*, i8*, %"class.std::allocator.43"*)

declare void @_ZNSaIcEC1Ev(%"class.std::allocator.43"*) nounwind

declare void @_ZNSsD1Ev(%"class.std::basic_string"*)

declare void @_ZNSaIcED1Ev(%"class.std::allocator.43"*) nounwind

define linkonce_odr void @_ZN5boost13negative_edgeD0Ev(%"struct.boost::negative_edge"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::negative_edge"*, align 4
  store %"struct.boost::negative_edge"* %this, %"struct.boost::negative_edge"** %this.addr, align 4
  %this1 = load %"struct.boost::negative_edge"** %this.addr
  call void @_ZN5boost13negative_edgeD1Ev(%"struct.boost::negative_edge"* %this1) nounwind
  %0 = bitcast %"struct.boost::negative_edge"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void
}

declare i8* @_ZNKSt11logic_error4whatEv(%"class.std::logic_error"*) nounwind

declare void @_ZdlPv(i8*) nounwind

declare void @_ZNSt16invalid_argumentC2ERKSs(%"class.std::invalid_argument"*, %"class.std::basic_string"*)

define linkonce_odr void @_ZN5boost9bad_graphD1Ev(%"struct.boost::bad_graph"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::bad_graph"*, align 4
  store %"struct.boost::bad_graph"* %this, %"struct.boost::bad_graph"** %this.addr, align 4
  %this1 = load %"struct.boost::bad_graph"** %this.addr
  call void @_ZN5boost9bad_graphD2Ev(%"struct.boost::bad_graph"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost9bad_graphD0Ev(%"struct.boost::bad_graph"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::bad_graph"*, align 4
  store %"struct.boost::bad_graph"* %this, %"struct.boost::bad_graph"** %this.addr, align 4
  %this1 = load %"struct.boost::bad_graph"** %this.addr
  call void @_ZN5boost9bad_graphD1Ev(%"struct.boost::bad_graph"* %this1) nounwind
  %0 = bitcast %"struct.boost::bad_graph"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost36throw_exception_assert_compatibilityERKSt9exception(%"class.std::exception"*) nounwind inlinehint {
entry:
  %.addr = alloca %"class.std::exception"*, align 4
  store %"class.std::exception"* %0, %"class.std::exception"** %.addr, align 4
  ret void
}

declare i8* @__cxa_allocate_exception(i32)

define linkonce_odr void @_ZN5boost24enable_current_exceptionINS_16exception_detail19error_info_injectorINS_13negative_edgeEEEEENS1_10clone_implIT_EERKS6_(%"class.boost::exception_detail::clone_impl"* noalias sret %agg.result, %"struct.boost::exception_detail::error_info_injector"* %x) inlinehint {
entry:
  %x.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  store %"struct.boost::exception_detail::error_info_injector"* %x, %"struct.boost::exception_detail::error_info_injector"** %x.addr, align 4
  %0 = load %"struct.boost::exception_detail::error_info_injector"** %x.addr, align 4
  call void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEC1ERKS4_(%"class.boost::exception_detail::clone_impl"* %agg.result, %"struct.boost::exception_detail::error_info_injector"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost17enable_error_infoINS_13negative_edgeEEENS_16exception_detail29enable_error_info_return_typeIT_E4typeERKS4_(%"struct.boost::exception_detail::error_info_injector"* noalias sret %agg.result, %"struct.boost::negative_edge"* %x) inlinehint {
entry:
  %x.addr = alloca %"struct.boost::negative_edge"*, align 4
  store %"struct.boost::negative_edge"* %x, %"struct.boost::negative_edge"** %x.addr, align 4
  %0 = load %"struct.boost::negative_edge"** %x.addr, align 4
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEC1ERKS2_(%"struct.boost::exception_detail::error_info_injector"* %agg.result, %"struct.boost::negative_edge"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  call void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED2Ev(%"class.boost::exception_detail::clone_impl"* %this1, i8** getelementptr inbounds ([2 x i8*]* @_ZTTN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 0)) nounwind
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %1 = getelementptr inbounds i8* %0, i64 28
  %2 = bitcast i8* %1 to %"class.boost::exception_detail::clone_base"*
  call void @_ZN5boost16exception_detail10clone_baseD2Ev(%"class.boost::exception_detail::clone_base"* %2) nounwind
  ret void
}

declare void @__cxa_throw(i8*, i8*, i8*)

define linkonce_odr void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED1Ev(%"struct.boost::exception_detail::error_info_injector"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  store %"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::exception_detail::error_info_injector"** %this.addr, align 4
  %this1 = load %"struct.boost::exception_detail::error_info_injector"** %this.addr
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED2Ev(%"struct.boost::exception_detail::error_info_injector"* %this1) nounwind
  ret void
}

declare void @__cxa_free_exception(i8*)

define linkonce_odr void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED2Ev(%"struct.boost::exception_detail::error_info_injector"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  store %"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::exception_detail::error_info_injector"** %this.addr, align 4
  %this1 = load %"struct.boost::exception_detail::error_info_injector"** %this.addr
  %0 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8*
  %1 = getelementptr inbounds i8* %0, i64 8
  %2 = bitcast i8* %1 to %"class.boost::exception"*
  call void @_ZN5boost9exceptionD2Ev(%"class.boost::exception"* %2) nounwind
  %3 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to %"struct.boost::negative_edge"*
  call void @_ZN5boost13negative_edgeD2Ev(%"struct.boost::negative_edge"* %3) nounwind
  ret void
}

define linkonce_odr void @_ZThn8_N5boost16exception_detail19error_info_injectorINS_13negative_edgeEED1Ev(%"struct.boost::exception_detail::error_info_injector"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  store %"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::exception_detail::error_info_injector"** %this.addr, align 4
  %this1 = load %"struct.boost::exception_detail::error_info_injector"** %this.addr
  %0 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8*
  %1 = getelementptr inbounds i8* %0, i64 -8
  %2 = bitcast i8* %1 to %"struct.boost::exception_detail::error_info_injector"*
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED1Ev(%"struct.boost::exception_detail::error_info_injector"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost9exceptionD2Ev(%"class.boost::exception"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::exception"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::exception"* %this, %"class.boost::exception"** %this.addr, align 4
  %this1 = load %"class.boost::exception"** %this.addr
  %0 = bitcast %"class.boost::exception"* %this1 to i8***
  store i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost9exceptionE, i64 0, i64 2), i8*** %0
  %data_ = getelementptr inbounds %"class.boost::exception"* %this1, i32 0, i32 1
  invoke void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEED1Ev(%"class.boost::exception_detail::refcount_ptr"* %data_)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          filter [0 x i8*] zeroinitializer
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  br label %filter.dispatch

filter.dispatch:                                  ; preds = %lpad
  %exn = load i8** %exn.slot
  call void @__cxa_call_unexpected(i8* %exn) noreturn
  unreachable
}

define linkonce_odr void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEED1Ev(%"class.boost::exception_detail::refcount_ptr"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEED2Ev(%"class.boost::exception_detail::refcount_ptr"* %this1)
  ret void
}

declare void @__cxa_call_unexpected(i8*)

declare void @__cxa_pure_virtual()

define linkonce_odr void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEED2Ev(%"class.boost::exception_detail::refcount_ptr"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE7releaseEv(%"class.boost::exception_detail::refcount_ptr"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE7releaseEv(%"class.boost::exception_detail::refcount_ptr"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  %px_ = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::exception_detail::error_info_container"** %px_, align 4
  %tobool = icmp ne %"struct.boost::exception_detail::error_info_container"* %0, null
  br i1 %tobool, label %land.lhs.true, label %if.end

land.lhs.true:                                    ; preds = %entry
  %px_2 = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::exception_detail::error_info_container"** %px_2, align 4
  %2 = bitcast %"struct.boost::exception_detail::error_info_container"* %1 to i1 (%"struct.boost::exception_detail::error_info_container"*)***
  %vtable = load i1 (%"struct.boost::exception_detail::error_info_container"*)*** %2
  %vfn = getelementptr inbounds i1 (%"struct.boost::exception_detail::error_info_container"*)** %vtable, i64 4
  %3 = load i1 (%"struct.boost::exception_detail::error_info_container"*)** %vfn
  %call = call zeroext i1 %3(%"struct.boost::exception_detail::error_info_container"* %1)
  br i1 %call, label %if.then, label %if.end

if.then:                                          ; preds = %land.lhs.true
  %px_3 = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %this1, i32 0, i32 0
  store %"struct.boost::exception_detail::error_info_container"* null, %"struct.boost::exception_detail::error_info_container"** %px_3, align 4
  br label %if.end

if.end:                                           ; preds = %if.then, %land.lhs.true, %entry
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED2Ev(%"class.boost::exception_detail::clone_impl"* %this, i8** %vtt) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to %"struct.boost::exception_detail::error_info_injector"*
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED2Ev(%"struct.boost::exception_detail::error_info_injector"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail10clone_baseD2Ev(%"class.boost::exception_detail::clone_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_base"*, align 4
  store %"class.boost::exception_detail::clone_base"* %this, %"class.boost::exception_detail::clone_base"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_base"** %this.addr
  ret void
}

define linkonce_odr void @_ZThn8_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %1 = getelementptr inbounds i8* %0, i64 -8
  %2 = bitcast i8* %1 to %"class.boost::exception_detail::clone_impl"*
  call void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev(%"class.boost::exception_detail::clone_impl"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZTv0_n20_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %1 = bitcast i8* %0 to i8**
  %2 = load i8** %1
  %3 = getelementptr inbounds i8* %2, i64 -20
  %4 = bitcast i8* %3 to i32*
  %5 = load i32* %4
  %6 = getelementptr inbounds i8* %0, i32 %5
  %7 = bitcast i8* %6 to %"class.boost::exception_detail::clone_impl"*
  call void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev(%"class.boost::exception_detail::clone_impl"* %7) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED0Ev(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  call void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev(%"class.boost::exception_detail::clone_impl"* %this1) nounwind
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void
}

define linkonce_odr %"class.boost::exception_detail::clone_base"* @_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE5cloneEv(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  %agg.tmp = alloca %"struct.boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::negative_edge> >::clone_tag", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %call = call noalias i8* @_Znwj(i32 32)
  %0 = bitcast i8* %call to %"class.boost::exception_detail::clone_impl"*
  invoke void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEC1ERKS5_NS5_9clone_tagE(%"class.boost::exception_detail::clone_impl"* %0, %"class.boost::exception_detail::clone_impl"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %1 = icmp eq %"class.boost::exception_detail::clone_impl"* %0, null
  br i1 %1, label %cast.end, label %cast.notnull

cast.notnull:                                     ; preds = %invoke.cont
  %2 = bitcast %"class.boost::exception_detail::clone_impl"* %0 to i8**
  %vtable = load i8** %2
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -12
  %3 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %3
  %4 = bitcast %"class.boost::exception_detail::clone_impl"* %0 to i8*
  %add.ptr = getelementptr inbounds i8* %4, i32 %vbase.offset
  %5 = bitcast i8* %add.ptr to %"class.boost::exception_detail::clone_base"*
  br label %cast.end

cast.end:                                         ; preds = %cast.notnull, %invoke.cont
  %cast.result = phi %"class.boost::exception_detail::clone_base"* [ %5, %cast.notnull ], [ null, %invoke.cont ]
  ret %"class.boost::exception_detail::clone_base"* %cast.result

lpad:                                             ; preds = %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  call void @_ZdlPv(i8* %call) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE7rethrowEv(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %exception = call i8* @__cxa_allocate_exception(i32 32) nounwind
  %0 = bitcast i8* %exception to %"class.boost::exception_detail::clone_impl"*
  invoke void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEC1ERKS5_(%"class.boost::exception_detail::clone_impl"* %0, %"class.boost::exception_detail::clone_impl"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @__cxa_throw(i8* %exception, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE to i8*), i8* bitcast (void (%"class.boost::exception_detail::clone_impl"*)* @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED1Ev to i8*)) noreturn
  unreachable

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  call void @__cxa_free_exception(i8* %exception) nounwind
  br label %eh.resume

return:                                           ; No predecessors!
  ret void

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZThn8_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED0Ev(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %1 = getelementptr inbounds i8* %0, i64 -8
  %2 = bitcast i8* %1 to %"class.boost::exception_detail::clone_impl"*
  call void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED0Ev(%"class.boost::exception_detail::clone_impl"* %2) nounwind
  ret void
}

define linkonce_odr %"class.boost::exception_detail::clone_base"* @_ZTv0_n12_NK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE5cloneEv(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %1 = bitcast i8* %0 to i8**
  %2 = load i8** %1
  %3 = getelementptr inbounds i8* %2, i64 -12
  %4 = bitcast i8* %3 to i32*
  %5 = load i32* %4
  %6 = getelementptr inbounds i8* %0, i32 %5
  %7 = bitcast i8* %6 to %"class.boost::exception_detail::clone_impl"*
  %call = call %"class.boost::exception_detail::clone_base"* @_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE5cloneEv(%"class.boost::exception_detail::clone_impl"* %7)
  ret %"class.boost::exception_detail::clone_base"* %call
}

define linkonce_odr void @_ZTv0_n16_NK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE7rethrowEv(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %1 = bitcast i8* %0 to i8**
  %2 = load i8** %1
  %3 = getelementptr inbounds i8* %2, i64 -16
  %4 = bitcast i8* %3 to i32*
  %5 = load i32* %4
  %6 = getelementptr inbounds i8* %0, i32 %5
  %7 = bitcast i8* %6 to %"class.boost::exception_detail::clone_impl"*
  call void @_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEE7rethrowEv(%"class.boost::exception_detail::clone_impl"* %7)
  ret void
}

define linkonce_odr void @_ZTv0_n20_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED0Ev(%"class.boost::exception_detail::clone_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %1 = bitcast i8* %0 to i8**
  %2 = load i8** %1
  %3 = getelementptr inbounds i8* %2, i64 -20
  %4 = bitcast i8* %3 to i32*
  %5 = load i32* %4
  %6 = getelementptr inbounds i8* %0, i32 %5
  %7 = bitcast i8* %6 to %"class.boost::exception_detail::clone_impl"*
  call void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEED0Ev(%"class.boost::exception_detail::clone_impl"* %7) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEC1ERKS5_(%"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  %.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  store %"class.boost::exception_detail::clone_impl"* %0, %"class.boost::exception_detail::clone_impl"** %.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %1 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %2 = getelementptr inbounds i8* %1, i64 28
  %3 = bitcast i8* %2 to %"class.boost::exception_detail::clone_base"*
  %4 = load %"class.boost::exception_detail::clone_impl"** %.addr, align 4
  %5 = bitcast %"class.boost::exception_detail::clone_impl"* %4 to i8**
  %vtable = load i8** %5
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -12
  %6 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %6
  %7 = bitcast %"class.boost::exception_detail::clone_impl"* %4 to i8*
  %add.ptr = getelementptr inbounds i8* %7, i32 %vbase.offset
  %8 = bitcast i8* %add.ptr to %"class.boost::exception_detail::clone_base"*
  call void @_ZN5boost16exception_detail10clone_baseC2ERKS1_(%"class.boost::exception_detail::clone_base"* %3, %"class.boost::exception_detail::clone_base"* %8) nounwind
  %9 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to %"struct.boost::exception_detail::error_info_injector"*
  %10 = load %"class.boost::exception_detail::clone_impl"** %.addr, align 4
  %11 = bitcast %"class.boost::exception_detail::clone_impl"* %10 to %"struct.boost::exception_detail::error_info_injector"*
  invoke void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEC2ERKS3_(%"struct.boost::exception_detail::error_info_injector"* %9, %"struct.boost::exception_detail::error_info_injector"* %11)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %12 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8***
  store i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 3), i8*** %12
  %13 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %add.ptr2 = getelementptr inbounds i8* %13, i32 8
  %14 = bitcast i8* %add.ptr2 to i8***
  store i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 10), i8*** %14
  %15 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %add.ptr3 = getelementptr inbounds i8* %15, i32 28
  %16 = bitcast i8* %add.ptr3 to i8***
  store i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 17), i8*** %16
  ret void

lpad:                                             ; preds = %entry
  %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %18 = extractvalue { i8*, i32 } %17, 0
  store i8* %18, i8** %exn.slot
  %19 = extractvalue { i8*, i32 } %17, 1
  store i32 %19, i32* %ehselector.slot
  %20 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %21 = getelementptr inbounds i8* %20, i64 28
  %22 = bitcast i8* %21 to %"class.boost::exception_detail::clone_base"*
  call void @_ZN5boost16exception_detail10clone_baseD2Ev(%"class.boost::exception_detail::clone_base"* %22) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4
}

define linkonce_odr void @_ZN5boost16exception_detail10clone_baseC2ERKS1_(%"class.boost::exception_detail::clone_base"* %this, %"class.boost::exception_detail::clone_base"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_base"*, align 4
  %.addr = alloca %"class.boost::exception_detail::clone_base"*, align 4
  store %"class.boost::exception_detail::clone_base"* %this, %"class.boost::exception_detail::clone_base"** %this.addr, align 4
  store %"class.boost::exception_detail::clone_base"* %0, %"class.boost::exception_detail::clone_base"** %.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_base"** %this.addr
  %1 = bitcast %"class.boost::exception_detail::clone_base"* %this1 to i8***
  store i8** getelementptr inbounds ([6 x i8*]* @_ZTVN5boost16exception_detail10clone_baseE, i64 0, i64 2), i8*** %1
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEC2ERKS3_(%"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::exception_detail::error_info_injector"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  %.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::exception_detail::error_info_injector"** %this.addr, align 4
  store %"struct.boost::exception_detail::error_info_injector"* %0, %"struct.boost::exception_detail::error_info_injector"** %.addr, align 4
  %this1 = load %"struct.boost::exception_detail::error_info_injector"** %this.addr
  %1 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to %"struct.boost::negative_edge"*
  %2 = load %"struct.boost::exception_detail::error_info_injector"** %.addr, align 4
  %3 = bitcast %"struct.boost::exception_detail::error_info_injector"* %2 to %"struct.boost::negative_edge"*
  call void @_ZN5boost13negative_edgeC2ERKS0_(%"struct.boost::negative_edge"* %1, %"struct.boost::negative_edge"* %3)
  %4 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8*
  %5 = getelementptr inbounds i8* %4, i64 8
  %6 = bitcast i8* %5 to %"class.boost::exception"*
  %7 = load %"struct.boost::exception_detail::error_info_injector"** %.addr, align 4
  %8 = bitcast %"struct.boost::exception_detail::error_info_injector"* %7 to i8*
  %add.ptr = getelementptr inbounds i8* %8, i32 8
  %9 = bitcast i8* %add.ptr to %"class.boost::exception"*
  invoke void @_ZN5boost9exceptionC2ERKS0_(%"class.boost::exception"* %6, %"class.boost::exception"* %9)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %10 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8***
  store i8** getelementptr inbounds ([9 x i8*]* @_ZTVN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE, i64 0, i64 2), i8*** %10
  %11 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8*
  %add.ptr2 = getelementptr inbounds i8* %11, i32 8
  %12 = bitcast i8* %add.ptr2 to i8***
  store i8** getelementptr inbounds ([9 x i8*]* @_ZTVN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE, i64 0, i64 7), i8*** %12
  ret void

lpad:                                             ; preds = %entry
  %13 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %14 = extractvalue { i8*, i32 } %13, 0
  store i8* %14, i8** %exn.slot
  %15 = extractvalue { i8*, i32 } %13, 1
  store i32 %15, i32* %ehselector.slot
  %16 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to %"struct.boost::negative_edge"*
  call void @_ZN5boost13negative_edgeD2Ev(%"struct.boost::negative_edge"* %16) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3
}

define linkonce_odr void @_ZN5boost13negative_edgeC2ERKS0_(%"struct.boost::negative_edge"* %this, %"struct.boost::negative_edge"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::negative_edge"*, align 4
  %.addr = alloca %"struct.boost::negative_edge"*, align 4
  store %"struct.boost::negative_edge"* %this, %"struct.boost::negative_edge"** %this.addr, align 4
  store %"struct.boost::negative_edge"* %0, %"struct.boost::negative_edge"** %.addr, align 4
  %this1 = load %"struct.boost::negative_edge"** %this.addr
  %1 = bitcast %"struct.boost::negative_edge"* %this1 to %"struct.boost::bad_graph"*
  %2 = load %"struct.boost::negative_edge"** %.addr, align 4
  %3 = bitcast %"struct.boost::negative_edge"* %2 to %"struct.boost::bad_graph"*
  call void @_ZN5boost9bad_graphC2ERKS0_(%"struct.boost::bad_graph"* %1, %"struct.boost::bad_graph"* %3)
  %4 = bitcast %"struct.boost::negative_edge"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost13negative_edgeE, i64 0, i64 2), i8*** %4
  ret void
}

define linkonce_odr void @_ZN5boost9exceptionC2ERKS0_(%"class.boost::exception"* %this, %"class.boost::exception"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::exception"*, align 4
  %.addr = alloca %"class.boost::exception"*, align 4
  store %"class.boost::exception"* %this, %"class.boost::exception"** %this.addr, align 4
  store %"class.boost::exception"* %0, %"class.boost::exception"** %.addr, align 4
  %this1 = load %"class.boost::exception"** %this.addr
  %1 = bitcast %"class.boost::exception"* %this1 to i8***
  store i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost9exceptionE, i64 0, i64 2), i8*** %1
  %data_ = getelementptr inbounds %"class.boost::exception"* %this1, i32 0, i32 1
  %2 = load %"class.boost::exception"** %.addr, align 4
  %data_2 = getelementptr inbounds %"class.boost::exception"* %2, i32 0, i32 1
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC1ERKS3_(%"class.boost::exception_detail::refcount_ptr"* %data_, %"class.boost::exception_detail::refcount_ptr"* %data_2)
  %throw_function_ = getelementptr inbounds %"class.boost::exception"* %this1, i32 0, i32 2
  %3 = load %"class.boost::exception"** %.addr, align 4
  %throw_function_3 = getelementptr inbounds %"class.boost::exception"* %3, i32 0, i32 2
  %4 = load i8** %throw_function_3, align 4
  store i8* %4, i8** %throw_function_, align 4
  %throw_file_ = getelementptr inbounds %"class.boost::exception"* %this1, i32 0, i32 3
  %5 = load %"class.boost::exception"** %.addr, align 4
  %throw_file_4 = getelementptr inbounds %"class.boost::exception"* %5, i32 0, i32 3
  %6 = load i8** %throw_file_4, align 4
  store i8* %6, i8** %throw_file_, align 4
  %throw_line_ = getelementptr inbounds %"class.boost::exception"* %this1, i32 0, i32 4
  %7 = load %"class.boost::exception"** %.addr, align 4
  %throw_line_5 = getelementptr inbounds %"class.boost::exception"* %7, i32 0, i32 4
  %8 = load i32* %throw_line_5, align 4
  store i32 %8, i32* %throw_line_, align 4
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED0Ev(%"struct.boost::exception_detail::error_info_injector"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  store %"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::exception_detail::error_info_injector"** %this.addr, align 4
  %this1 = load %"struct.boost::exception_detail::error_info_injector"** %this.addr
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED1Ev(%"struct.boost::exception_detail::error_info_injector"* %this1) nounwind
  %0 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void
}

define linkonce_odr void @_ZThn8_N5boost16exception_detail19error_info_injectorINS_13negative_edgeEED0Ev(%"struct.boost::exception_detail::error_info_injector"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  store %"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::exception_detail::error_info_injector"** %this.addr, align 4
  %this1 = load %"struct.boost::exception_detail::error_info_injector"** %this.addr
  %0 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8*
  %1 = getelementptr inbounds i8* %0, i64 -8
  %2 = bitcast i8* %1 to %"struct.boost::exception_detail::error_info_injector"*
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED0Ev(%"struct.boost::exception_detail::error_info_injector"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC1ERKS3_(%"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  %x.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %x, %"class.boost::exception_detail::refcount_ptr"** %x.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  %0 = load %"class.boost::exception_detail::refcount_ptr"** %x.addr
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC2ERKS3_(%"class.boost::exception_detail::refcount_ptr"* %this1, %"class.boost::exception_detail::refcount_ptr"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC2ERKS3_(%"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  %x.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %x, %"class.boost::exception_detail::refcount_ptr"** %x.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  %px_ = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %this1, i32 0, i32 0
  %0 = load %"class.boost::exception_detail::refcount_ptr"** %x.addr, align 4
  %px_2 = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %0, i32 0, i32 0
  %1 = load %"struct.boost::exception_detail::error_info_container"** %px_2, align 4
  store %"struct.boost::exception_detail::error_info_container"* %1, %"struct.boost::exception_detail::error_info_container"** %px_, align 4
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE7add_refEv(%"class.boost::exception_detail::refcount_ptr"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE7add_refEv(%"class.boost::exception_detail::refcount_ptr"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  %px_ = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::exception_detail::error_info_container"** %px_, align 4
  %tobool = icmp ne %"struct.boost::exception_detail::error_info_container"* %0, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %px_2 = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::exception_detail::error_info_container"** %px_2, align 4
  %2 = bitcast %"struct.boost::exception_detail::error_info_container"* %1 to void (%"struct.boost::exception_detail::error_info_container"*)***
  %vtable = load void (%"struct.boost::exception_detail::error_info_container"*)*** %2
  %vfn = getelementptr inbounds void (%"struct.boost::exception_detail::error_info_container"*)** %vtable, i64 3
  %3 = load void (%"struct.boost::exception_detail::error_info_container"*)** %vfn
  call void %3(%"struct.boost::exception_detail::error_info_container"* %1)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZN5boost9bad_graphC2ERKS0_(%"struct.boost::bad_graph"* %this, %"struct.boost::bad_graph"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::bad_graph"*, align 4
  %.addr = alloca %"struct.boost::bad_graph"*, align 4
  store %"struct.boost::bad_graph"* %this, %"struct.boost::bad_graph"** %this.addr, align 4
  store %"struct.boost::bad_graph"* %0, %"struct.boost::bad_graph"** %.addr, align 4
  %this1 = load %"struct.boost::bad_graph"** %this.addr
  %1 = bitcast %"struct.boost::bad_graph"* %this1 to %"class.std::invalid_argument"*
  %2 = load %"struct.boost::bad_graph"** %.addr, align 4
  %3 = bitcast %"struct.boost::bad_graph"* %2 to %"class.std::invalid_argument"*
  call void @_ZNSt16invalid_argumentC2ERKS_(%"class.std::invalid_argument"* %1, %"class.std::invalid_argument"* %3)
  %4 = bitcast %"struct.boost::bad_graph"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost9bad_graphE, i64 0, i64 2), i8*** %4
  ret void
}

define linkonce_odr void @_ZNSt16invalid_argumentC2ERKS_(%"class.std::invalid_argument"* %this, %"class.std::invalid_argument"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.std::invalid_argument"*, align 4
  %.addr = alloca %"class.std::invalid_argument"*, align 4
  store %"class.std::invalid_argument"* %this, %"class.std::invalid_argument"** %this.addr, align 4
  store %"class.std::invalid_argument"* %0, %"class.std::invalid_argument"** %.addr, align 4
  %this1 = load %"class.std::invalid_argument"** %this.addr
  %1 = bitcast %"class.std::invalid_argument"* %this1 to %"class.std::logic_error"*
  %2 = load %"class.std::invalid_argument"** %.addr, align 4
  %3 = bitcast %"class.std::invalid_argument"* %2 to %"class.std::logic_error"*
  call void @_ZNSt11logic_errorC2ERKS_(%"class.std::logic_error"* %1, %"class.std::logic_error"* %3)
  %4 = bitcast %"class.std::invalid_argument"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVSt16invalid_argument, i64 0, i64 2), i8*** %4
  ret void
}

define linkonce_odr void @_ZNSt11logic_errorC2ERKS_(%"class.std::logic_error"* %this, %"class.std::logic_error"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.std::logic_error"*, align 4
  %.addr = alloca %"class.std::logic_error"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::logic_error"* %this, %"class.std::logic_error"** %this.addr, align 4
  store %"class.std::logic_error"* %0, %"class.std::logic_error"** %.addr, align 4
  %this1 = load %"class.std::logic_error"** %this.addr
  %1 = bitcast %"class.std::logic_error"* %this1 to %"class.std::exception"*
  %2 = load %"class.std::logic_error"** %.addr, align 4
  %3 = bitcast %"class.std::logic_error"* %2 to %"class.std::exception"*
  call void @_ZNSt9exceptionC2ERKS_(%"class.std::exception"* %1, %"class.std::exception"* %3) nounwind
  %4 = bitcast %"class.std::logic_error"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVSt11logic_error, i64 0, i64 2), i8*** %4
  %_M_msg = getelementptr inbounds %"class.std::logic_error"* %this1, i32 0, i32 1
  %5 = load %"class.std::logic_error"** %.addr, align 4
  %_M_msg2 = getelementptr inbounds %"class.std::logic_error"* %5, i32 0, i32 1
  invoke void @_ZNSsC1ERKSs(%"class.std::basic_string"* %_M_msg, %"class.std::basic_string"* %_M_msg2)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  %9 = bitcast %"class.std::logic_error"* %this1 to %"class.std::exception"*
  call void @_ZNSt9exceptionD2Ev(%"class.std::exception"* %9) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3
}

define linkonce_odr void @_ZNSt9exceptionC2ERKS_(%"class.std::exception"* %this, %"class.std::exception"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.std::exception"*, align 4
  %.addr = alloca %"class.std::exception"*, align 4
  store %"class.std::exception"* %this, %"class.std::exception"** %this.addr, align 4
  store %"class.std::exception"* %0, %"class.std::exception"** %.addr, align 4
  %this1 = load %"class.std::exception"** %this.addr
  %1 = bitcast %"class.std::exception"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVSt9exception, i64 0, i64 2), i8*** %1
  ret void
}

declare void @_ZNSsC1ERKSs(%"class.std::basic_string"*, %"class.std::basic_string"*)

declare void @_ZNSt9exceptionD2Ev(%"class.std::exception"*) nounwind

define linkonce_odr void @_ZN5boost16exception_detail10clone_baseD1Ev(%"class.boost::exception_detail::clone_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_base"*, align 4
  store %"class.boost::exception_detail::clone_base"* %this, %"class.boost::exception_detail::clone_base"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_base"** %this.addr
  call void @_ZN5boost16exception_detail10clone_baseD2Ev(%"class.boost::exception_detail::clone_base"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail10clone_baseD0Ev(%"class.boost::exception_detail::clone_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_base"*, align 4
  store %"class.boost::exception_detail::clone_base"* %this, %"class.boost::exception_detail::clone_base"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_base"** %this.addr
  call void @_ZN5boost16exception_detail10clone_baseD1Ev(%"class.boost::exception_detail::clone_base"* %this1) nounwind
  %0 = bitcast %"class.boost::exception_detail::clone_base"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void
}

declare noalias i8* @_Znwj(i32)

define linkonce_odr void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEC1ERKS5_NS5_9clone_tagE(%"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  %x.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  %0 = alloca %"struct.boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::negative_edge> >::clone_tag", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  store %"class.boost::exception_detail::clone_impl"* %x, %"class.boost::exception_detail::clone_impl"** %x.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %1 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %2 = getelementptr inbounds i8* %1, i64 28
  %3 = bitcast i8* %2 to %"class.boost::exception_detail::clone_base"*
  call void @_ZN5boost16exception_detail10clone_baseC2Ev(%"class.boost::exception_detail::clone_base"* %3) nounwind
  %4 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to %"struct.boost::exception_detail::error_info_injector"*
  %5 = load %"class.boost::exception_detail::clone_impl"** %x.addr, align 4
  %6 = bitcast %"class.boost::exception_detail::clone_impl"* %5 to %"struct.boost::exception_detail::error_info_injector"*
  invoke void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEC2ERKS3_(%"struct.boost::exception_detail::error_info_injector"* %4, %"struct.boost::exception_detail::error_info_injector"* %6)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %7 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8***
  store i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 3), i8*** %7
  %8 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %8, i32 8
  %9 = bitcast i8* %add.ptr to i8***
  store i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 10), i8*** %9
  %10 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %add.ptr2 = getelementptr inbounds i8* %10, i32 28
  %11 = bitcast i8* %add.ptr2 to i8***
  store i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 17), i8*** %11
  %12 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %add.ptr3 = getelementptr inbounds i8* %12, i32 8
  %13 = bitcast i8* %add.ptr3 to %"class.boost::exception"*
  %14 = load %"class.boost::exception_detail::clone_impl"** %x.addr, align 4
  %15 = icmp eq %"class.boost::exception_detail::clone_impl"* %14, null
  br i1 %15, label %cast.end, label %cast.notnull

cast.notnull:                                     ; preds = %invoke.cont
  %16 = bitcast %"class.boost::exception_detail::clone_impl"* %14 to i8*
  %add.ptr4 = getelementptr inbounds i8* %16, i32 8
  %17 = bitcast i8* %add.ptr4 to %"class.boost::exception"*
  br label %cast.end

cast.end:                                         ; preds = %cast.notnull, %invoke.cont
  %cast.result = phi %"class.boost::exception"* [ %17, %cast.notnull ], [ null, %invoke.cont ]
  invoke void @_ZN5boost16exception_detail20copy_boost_exceptionEPNS_9exceptionEPKS1_(%"class.boost::exception"* %13, %"class.boost::exception"* %cast.result)
          to label %invoke.cont6 unwind label %lpad5

invoke.cont6:                                     ; preds = %cast.end
  ret void

lpad:                                             ; preds = %entry
  %18 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %19 = extractvalue { i8*, i32 } %18, 0
  store i8* %19, i8** %exn.slot
  %20 = extractvalue { i8*, i32 } %18, 1
  store i32 %20, i32* %ehselector.slot
  br label %ehcleanup

lpad5:                                            ; preds = %cast.end
  %21 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %22 = extractvalue { i8*, i32 } %21, 0
  store i8* %22, i8** %exn.slot
  %23 = extractvalue { i8*, i32 } %21, 1
  store i32 %23, i32* %ehselector.slot
  %24 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to %"struct.boost::exception_detail::error_info_injector"*
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED2Ev(%"struct.boost::exception_detail::error_info_injector"* %24) nounwind
  br label %ehcleanup

ehcleanup:                                        ; preds = %lpad5, %lpad
  %25 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %26 = getelementptr inbounds i8* %25, i64 28
  %27 = bitcast i8* %26 to %"class.boost::exception_detail::clone_base"*
  call void @_ZN5boost16exception_detail10clone_baseD2Ev(%"class.boost::exception_detail::clone_base"* %27) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %ehcleanup
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7
}

define linkonce_odr void @_ZN5boost16exception_detail10clone_baseC2Ev(%"class.boost::exception_detail::clone_base"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_base"*, align 4
  store %"class.boost::exception_detail::clone_base"* %this, %"class.boost::exception_detail::clone_base"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_base"** %this.addr
  %0 = bitcast %"class.boost::exception_detail::clone_base"* %this1 to i8***
  store i8** getelementptr inbounds ([6 x i8*]* @_ZTVN5boost16exception_detail10clone_baseE, i64 0, i64 2), i8*** %0
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail20copy_boost_exceptionEPNS_9exceptionEPKS1_(%"class.boost::exception"* %a, %"class.boost::exception"* %b) inlinehint {
entry:
  %a.addr = alloca %"class.boost::exception"*, align 4
  %b.addr = alloca %"class.boost::exception"*, align 4
  %data = alloca %"class.boost::exception_detail::refcount_ptr", align 4
  %d = alloca %"struct.boost::exception_detail::error_info_container"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp = alloca %"class.boost::exception_detail::refcount_ptr", align 4
  store %"class.boost::exception"* %a, %"class.boost::exception"** %a.addr, align 4
  store %"class.boost::exception"* %b, %"class.boost::exception"** %b.addr, align 4
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC1Ev(%"class.boost::exception_detail::refcount_ptr"* %data)
  %0 = load %"class.boost::exception"** %b.addr, align 4
  %data_ = getelementptr inbounds %"class.boost::exception"* %0, i32 0, i32 1
  %call = invoke %"struct.boost::exception_detail::error_info_container"* @_ZNK5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE3getEv(%"class.boost::exception_detail::refcount_ptr"* %data_)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  store %"struct.boost::exception_detail::error_info_container"* %call, %"struct.boost::exception_detail::error_info_container"** %d, align 4
  %1 = load %"struct.boost::exception_detail::error_info_container"** %d, align 4
  %tobool = icmp ne %"struct.boost::exception_detail::error_info_container"* %1, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %invoke.cont
  %2 = load %"struct.boost::exception_detail::error_info_container"** %d, align 4
  %3 = bitcast %"struct.boost::exception_detail::error_info_container"* %2 to void (%"class.boost::exception_detail::refcount_ptr"*, %"struct.boost::exception_detail::error_info_container"*)***
  %vtable = load void (%"class.boost::exception_detail::refcount_ptr"*, %"struct.boost::exception_detail::error_info_container"*)*** %3
  %vfn = getelementptr inbounds void (%"class.boost::exception_detail::refcount_ptr"*, %"struct.boost::exception_detail::error_info_container"*)** %vtable, i64 5
  %4 = load void (%"class.boost::exception_detail::refcount_ptr"*, %"struct.boost::exception_detail::error_info_container"*)** %vfn
  invoke void %4(%"class.boost::exception_detail::refcount_ptr"* sret %ref.tmp, %"struct.boost::exception_detail::error_info_container"* %2)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %if.then
  %call4 = invoke %"class.boost::exception_detail::refcount_ptr"* @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEaSERKS3_(%"class.boost::exception_detail::refcount_ptr"* %data, %"class.boost::exception_detail::refcount_ptr"* %ref.tmp)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %invoke.cont1
  invoke void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEED1Ev(%"class.boost::exception_detail::refcount_ptr"* %ref.tmp)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont3
  br label %if.end

lpad:                                             ; preds = %if.end, %invoke.cont3, %if.then, %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  br label %ehcleanup

lpad2:                                            ; preds = %invoke.cont1
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %9 = extractvalue { i8*, i32 } %8, 0
  store i8* %9, i8** %exn.slot
  %10 = extractvalue { i8*, i32 } %8, 1
  store i32 %10, i32* %ehselector.slot
  invoke void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEED1Ev(%"class.boost::exception_detail::refcount_ptr"* %ref.tmp)
          to label %invoke.cont6 unwind label %terminate.lpad

invoke.cont6:                                     ; preds = %lpad2
  br label %ehcleanup

if.end:                                           ; preds = %invoke.cont5, %invoke.cont
  %11 = load %"class.boost::exception"** %b.addr, align 4
  %throw_file_ = getelementptr inbounds %"class.boost::exception"* %11, i32 0, i32 3
  %12 = load i8** %throw_file_, align 4
  %13 = load %"class.boost::exception"** %a.addr, align 4
  %throw_file_7 = getelementptr inbounds %"class.boost::exception"* %13, i32 0, i32 3
  store i8* %12, i8** %throw_file_7, align 4
  %14 = load %"class.boost::exception"** %b.addr, align 4
  %throw_line_ = getelementptr inbounds %"class.boost::exception"* %14, i32 0, i32 4
  %15 = load i32* %throw_line_, align 4
  %16 = load %"class.boost::exception"** %a.addr, align 4
  %throw_line_8 = getelementptr inbounds %"class.boost::exception"* %16, i32 0, i32 4
  store i32 %15, i32* %throw_line_8, align 4
  %17 = load %"class.boost::exception"** %b.addr, align 4
  %throw_function_ = getelementptr inbounds %"class.boost::exception"* %17, i32 0, i32 2
  %18 = load i8** %throw_function_, align 4
  %19 = load %"class.boost::exception"** %a.addr, align 4
  %throw_function_9 = getelementptr inbounds %"class.boost::exception"* %19, i32 0, i32 2
  store i8* %18, i8** %throw_function_9, align 4
  %20 = load %"class.boost::exception"** %a.addr, align 4
  %data_10 = getelementptr inbounds %"class.boost::exception"* %20, i32 0, i32 1
  %call12 = invoke %"class.boost::exception_detail::refcount_ptr"* @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEaSERKS3_(%"class.boost::exception_detail::refcount_ptr"* %data_10, %"class.boost::exception_detail::refcount_ptr"* %data)
          to label %invoke.cont11 unwind label %lpad

invoke.cont11:                                    ; preds = %if.end
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEED1Ev(%"class.boost::exception_detail::refcount_ptr"* %data)
  ret void

ehcleanup:                                        ; preds = %invoke.cont6, %lpad
  invoke void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEED1Ev(%"class.boost::exception_detail::refcount_ptr"* %data)
          to label %invoke.cont13 unwind label %terminate.lpad

invoke.cont13:                                    ; preds = %ehcleanup
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont13
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val14 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val14

terminate.lpad:                                   ; preds = %ehcleanup, %lpad2
  %21 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC1Ev(%"class.boost::exception_detail::refcount_ptr"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC2Ev(%"class.boost::exception_detail::refcount_ptr"* %this1)
  ret void
}

define linkonce_odr %"struct.boost::exception_detail::error_info_container"* @_ZNK5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE3getEv(%"class.boost::exception_detail::refcount_ptr"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  %px_ = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::exception_detail::error_info_container"** %px_, align 4
  ret %"struct.boost::exception_detail::error_info_container"* %0
}

define linkonce_odr %"class.boost::exception_detail::refcount_ptr"* @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEaSERKS3_(%"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"* %x) align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  %x.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %x, %"class.boost::exception_detail::refcount_ptr"** %x.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  %0 = load %"class.boost::exception_detail::refcount_ptr"** %x.addr, align 4
  %px_ = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %0, i32 0, i32 0
  %1 = load %"struct.boost::exception_detail::error_info_container"** %px_, align 4
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE5adoptEPS2_(%"class.boost::exception_detail::refcount_ptr"* %this1, %"struct.boost::exception_detail::error_info_container"* %1)
  ret %"class.boost::exception_detail::refcount_ptr"* %this1
}

define linkonce_odr void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE5adoptEPS2_(%"class.boost::exception_detail::refcount_ptr"* %this, %"struct.boost::exception_detail::error_info_container"* %px) align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  %px.addr = alloca %"struct.boost::exception_detail::error_info_container"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  store %"struct.boost::exception_detail::error_info_container"* %px, %"struct.boost::exception_detail::error_info_container"** %px.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE7releaseEv(%"class.boost::exception_detail::refcount_ptr"* %this1)
  %0 = load %"struct.boost::exception_detail::error_info_container"** %px.addr, align 4
  %px_ = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %this1, i32 0, i32 0
  store %"struct.boost::exception_detail::error_info_container"* %0, %"struct.boost::exception_detail::error_info_container"** %px_, align 4
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE7add_refEv(%"class.boost::exception_detail::refcount_ptr"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC2Ev(%"class.boost::exception_detail::refcount_ptr"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::refcount_ptr"*, align 4
  store %"class.boost::exception_detail::refcount_ptr"* %this, %"class.boost::exception_detail::refcount_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::exception_detail::refcount_ptr"** %this.addr
  %px_ = getelementptr inbounds %"class.boost::exception_detail::refcount_ptr"* %this1, i32 0, i32 0
  store %"struct.boost::exception_detail::error_info_container"* null, %"struct.boost::exception_detail::error_info_container"** %px_, align 4
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEC1ERKS2_(%"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::negative_edge"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  %x.addr = alloca %"struct.boost::negative_edge"*, align 4
  store %"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::exception_detail::error_info_injector"** %this.addr, align 4
  store %"struct.boost::negative_edge"* %x, %"struct.boost::negative_edge"** %x.addr, align 4
  %this1 = load %"struct.boost::exception_detail::error_info_injector"** %this.addr
  %0 = load %"struct.boost::negative_edge"** %x.addr
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEC2ERKS2_(%"struct.boost::exception_detail::error_info_injector"* %this1, %"struct.boost::negative_edge"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEC2ERKS2_(%"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::negative_edge"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  %x.addr = alloca %"struct.boost::negative_edge"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.boost::exception_detail::error_info_injector"* %this, %"struct.boost::exception_detail::error_info_injector"** %this.addr, align 4
  store %"struct.boost::negative_edge"* %x, %"struct.boost::negative_edge"** %x.addr, align 4
  %this1 = load %"struct.boost::exception_detail::error_info_injector"** %this.addr
  %0 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to %"struct.boost::negative_edge"*
  %1 = load %"struct.boost::negative_edge"** %x.addr, align 4
  call void @_ZN5boost13negative_edgeC2ERKS0_(%"struct.boost::negative_edge"* %0, %"struct.boost::negative_edge"* %1)
  %2 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8*
  %3 = getelementptr inbounds i8* %2, i64 8
  %4 = bitcast i8* %3 to %"class.boost::exception"*
  invoke void @_ZN5boost9exceptionC2Ev(%"class.boost::exception"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %5 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8***
  store i8** getelementptr inbounds ([9 x i8*]* @_ZTVN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE, i64 0, i64 2), i8*** %5
  %6 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %6, i32 8
  %7 = bitcast i8* %add.ptr to i8***
  store i8** getelementptr inbounds ([9 x i8*]* @_ZTVN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEE, i64 0, i64 7), i8*** %7
  ret void

lpad:                                             ; preds = %entry
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %9 = extractvalue { i8*, i32 } %8, 0
  store i8* %9, i8** %exn.slot
  %10 = extractvalue { i8*, i32 } %8, 1
  store i32 %10, i32* %ehselector.slot
  %11 = bitcast %"struct.boost::exception_detail::error_info_injector"* %this1 to %"struct.boost::negative_edge"*
  call void @_ZN5boost13negative_edgeD2Ev(%"struct.boost::negative_edge"* %11) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZN5boost9exceptionC2Ev(%"class.boost::exception"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception"*, align 4
  store %"class.boost::exception"* %this, %"class.boost::exception"** %this.addr, align 4
  %this1 = load %"class.boost::exception"** %this.addr
  %0 = bitcast %"class.boost::exception"* %this1 to i8***
  store i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost9exceptionE, i64 0, i64 2), i8*** %0
  %data_ = getelementptr inbounds %"class.boost::exception"* %this1, i32 0, i32 1
  call void @_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC1Ev(%"class.boost::exception_detail::refcount_ptr"* %data_)
  %throw_function_ = getelementptr inbounds %"class.boost::exception"* %this1, i32 0, i32 2
  store i8* null, i8** %throw_function_, align 4
  %throw_file_ = getelementptr inbounds %"class.boost::exception"* %this1, i32 0, i32 3
  store i8* null, i8** %throw_file_, align 4
  %throw_line_ = getelementptr inbounds %"class.boost::exception"* %this1, i32 0, i32 4
  store i32 -1, i32* %throw_line_, align 4
  ret void
}

define linkonce_odr void @_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEC1ERKS4_(%"class.boost::exception_detail::clone_impl"* %this, %"struct.boost::exception_detail::error_info_injector"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::exception_detail::clone_impl"*, align 4
  %x.addr = alloca %"struct.boost::exception_detail::error_info_injector"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::exception_detail::clone_impl"* %this, %"class.boost::exception_detail::clone_impl"** %this.addr, align 4
  store %"struct.boost::exception_detail::error_info_injector"* %x, %"struct.boost::exception_detail::error_info_injector"** %x.addr, align 4
  %this1 = load %"class.boost::exception_detail::clone_impl"** %this.addr
  %0 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %1 = getelementptr inbounds i8* %0, i64 28
  %2 = bitcast i8* %1 to %"class.boost::exception_detail::clone_base"*
  call void @_ZN5boost16exception_detail10clone_baseC2Ev(%"class.boost::exception_detail::clone_base"* %2) nounwind
  %3 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to %"struct.boost::exception_detail::error_info_injector"*
  %4 = load %"struct.boost::exception_detail::error_info_injector"** %x.addr, align 4
  invoke void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEEC2ERKS3_(%"struct.boost::exception_detail::error_info_injector"* %3, %"struct.boost::exception_detail::error_info_injector"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %5 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8***
  store i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 3), i8*** %5
  %6 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %6, i32 8
  %7 = bitcast i8* %add.ptr to i8***
  store i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 10), i8*** %7
  %8 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %add.ptr2 = getelementptr inbounds i8* %8, i32 28
  %9 = bitcast i8* %add.ptr2 to i8***
  store i8** getelementptr inbounds ([21 x i8*]* @_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_13negative_edgeEEEEE, i64 0, i64 17), i8*** %9
  %10 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %add.ptr3 = getelementptr inbounds i8* %10, i32 8
  %11 = bitcast i8* %add.ptr3 to %"class.boost::exception"*
  %12 = load %"struct.boost::exception_detail::error_info_injector"** %x.addr, align 4
  %13 = icmp eq %"struct.boost::exception_detail::error_info_injector"* %12, null
  br i1 %13, label %cast.end, label %cast.notnull

cast.notnull:                                     ; preds = %invoke.cont
  %14 = bitcast %"struct.boost::exception_detail::error_info_injector"* %12 to i8*
  %add.ptr4 = getelementptr inbounds i8* %14, i32 8
  %15 = bitcast i8* %add.ptr4 to %"class.boost::exception"*
  br label %cast.end

cast.end:                                         ; preds = %cast.notnull, %invoke.cont
  %cast.result = phi %"class.boost::exception"* [ %15, %cast.notnull ], [ null, %invoke.cont ]
  invoke void @_ZN5boost16exception_detail20copy_boost_exceptionEPNS_9exceptionEPKS1_(%"class.boost::exception"* %11, %"class.boost::exception"* %cast.result)
          to label %invoke.cont6 unwind label %lpad5

invoke.cont6:                                     ; preds = %cast.end
  ret void

lpad:                                             ; preds = %entry
  %16 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %17 = extractvalue { i8*, i32 } %16, 0
  store i8* %17, i8** %exn.slot
  %18 = extractvalue { i8*, i32 } %16, 1
  store i32 %18, i32* %ehselector.slot
  br label %ehcleanup

lpad5:                                            ; preds = %cast.end
  %19 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %20 = extractvalue { i8*, i32 } %19, 0
  store i8* %20, i8** %exn.slot
  %21 = extractvalue { i8*, i32 } %19, 1
  store i32 %21, i32* %ehselector.slot
  %22 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to %"struct.boost::exception_detail::error_info_injector"*
  call void @_ZN5boost16exception_detail19error_info_injectorINS_13negative_edgeEED2Ev(%"struct.boost::exception_detail::error_info_injector"* %22) nounwind
  br label %ehcleanup

ehcleanup:                                        ; preds = %lpad5, %lpad
  %23 = bitcast %"class.boost::exception_detail::clone_impl"* %this1 to i8*
  %24 = getelementptr inbounds i8* %23, i64 28
  %25 = bitcast i8* %24 to %"class.boost::exception_detail::clone_base"*
  call void @_ZN5boost16exception_detail10clone_baseD2Ev(%"class.boost::exception_detail::clone_base"* %25) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %ehcleanup
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESG_NS0_9null_typeESH_SH_SH_SH_SH_SH_SH_EC1ESG_SG_(%"class.boost::tuples::tuple.40"* %this, %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.40"*, align 4
  %t0.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"class.boost::tuples::tuple.40"* %this, %"class.boost::tuples::tuple.40"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.40"** %this.addr
  %0 = load %"struct.boost::detail::out_edge_iter"** %t0.addr
  %1 = load %"struct.boost::detail::out_edge_iter"** %t1.addr
  call void @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESG_NS0_9null_typeESH_SH_SH_SH_SH_SH_SH_EC2ESG_SG_(%"class.boost::tuples::tuple.40"* %this1, %"struct.boost::detail::out_edge_iter"* %0, %"struct.boost::detail::out_edge_iter"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESG_NS0_9null_typeESH_SH_SH_SH_SH_SH_SH_EC2ESG_SG_(%"class.boost::tuples::tuple.40"* %this, %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.40"*, align 4
  %t0.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp2 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp3 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp4 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp5 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp6 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp7 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp8 = alloca %"struct.boost::tuples::null_type", align 1
  store %"class.boost::tuples::tuple.40"* %this, %"class.boost::tuples::tuple.40"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.40"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.40"* %this1 to %"struct.boost::tuples::cons.41"*
  %1 = load %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  %2 = load %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp2)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp3)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp4)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp5)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp6)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp7)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp8)
  call void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS1_ISG_NS0_9null_typeEEEEC2ISF_SF_KSH_SL_SL_SL_SL_SL_SL_SL_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.41"* %0, %"struct.boost::detail::out_edge_iter"* %1, %"struct.boost::detail::out_edge_iter"* %2, %"struct.boost::tuples::null_type"* %ref.tmp, %"struct.boost::tuples::null_type"* %ref.tmp2, %"struct.boost::tuples::null_type"* %ref.tmp3, %"struct.boost::tuples::null_type"* %ref.tmp4, %"struct.boost::tuples::null_type"* %ref.tmp5, %"struct.boost::tuples::null_type"* %ref.tmp6, %"struct.boost::tuples::null_type"* %ref.tmp7, %"struct.boost::tuples::null_type"* %ref.tmp8)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS1_ISG_NS0_9null_typeEEEEC2ISF_SF_KSH_SL_SL_SL_SL_SL_SL_SL_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.41"* %this, %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"* %t2, %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"* %t10) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.41"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t2.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t3.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t4.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t5.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t6.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t7.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t8.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t9.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t10.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  store %"struct.boost::tuples::cons.41"* %this, %"struct.boost::tuples::cons.41"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t2, %"struct.boost::detail::out_edge_iter"** %t2.addr, align 4
  store %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"** %t3.addr, align 4
  store %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"** %t4.addr, align 4
  store %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"** %t5.addr, align 4
  store %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"** %t6.addr, align 4
  store %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"** %t7.addr, align 4
  store %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"** %t8.addr, align 4
  store %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"** %t9.addr, align 4
  store %"struct.boost::tuples::null_type"* %t10, %"struct.boost::tuples::null_type"** %t10.addr, align 4
  %this1 = load %"struct.boost::tuples::cons.41"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::tuples::cons.41"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %1, %"struct.boost::detail::out_edge_iter"** %0, align 4
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.41"* %this1, i32 0, i32 1
  %2 = load %"struct.boost::detail::out_edge_iter"** %t2.addr, align 4
  %3 = load %"struct.boost::tuples::null_type"** %t3.addr, align 4
  %4 = load %"struct.boost::tuples::null_type"** %t4.addr, align 4
  %5 = load %"struct.boost::tuples::null_type"** %t5.addr, align 4
  %6 = load %"struct.boost::tuples::null_type"** %t6.addr, align 4
  %7 = load %"struct.boost::tuples::null_type"** %t7.addr, align 4
  %8 = load %"struct.boost::tuples::null_type"** %t8.addr, align 4
  %9 = load %"struct.boost::tuples::null_type"** %t9.addr, align 4
  %10 = load %"struct.boost::tuples::null_type"** %t10.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS0_9null_typeEEC1ISF_EERT_RKSH_SN_SN_SN_SN_SN_SN_SN_SN_(%"struct.boost::tuples::cons.42"* %tail, %"struct.boost::detail::out_edge_iter"* %2, %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS0_9null_typeEEC1ISF_EERT_RKSH_SN_SN_SN_SN_SN_SN_SN_SN_(%"struct.boost::tuples::cons.42"* %this, %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.42"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.42"* %this, %"struct.boost::tuples::cons.42"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.42"** %this.addr
  %9 = load %"struct.boost::detail::out_edge_iter"** %t1.addr
  %10 = load %"struct.boost::tuples::null_type"** %.addr
  %11 = load %"struct.boost::tuples::null_type"** %.addr1
  %12 = load %"struct.boost::tuples::null_type"** %.addr2
  %13 = load %"struct.boost::tuples::null_type"** %.addr3
  %14 = load %"struct.boost::tuples::null_type"** %.addr4
  %15 = load %"struct.boost::tuples::null_type"** %.addr5
  %16 = load %"struct.boost::tuples::null_type"** %.addr6
  %17 = load %"struct.boost::tuples::null_type"** %.addr7
  %18 = load %"struct.boost::tuples::null_type"** %.addr8
  call void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS0_9null_typeEEC2ISF_EERT_RKSH_SN_SN_SN_SN_SN_SN_SN_SN_(%"struct.boost::tuples::cons.42"* %this9, %"struct.boost::detail::out_edge_iter"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %11, %"struct.boost::tuples::null_type"* %12, %"struct.boost::tuples::null_type"* %13, %"struct.boost::tuples::null_type"* %14, %"struct.boost::tuples::null_type"* %15, %"struct.boost::tuples::null_type"* %16, %"struct.boost::tuples::null_type"* %17, %"struct.boost::tuples::null_type"* %18)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS0_9null_typeEEC2ISF_EERT_RKSH_SN_SN_SN_SN_SN_SN_SN_SN_(%"struct.boost::tuples::cons.42"* %this, %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.42"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.42"* %this, %"struct.boost::tuples::cons.42"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.42"** %this.addr
  %9 = getelementptr inbounds %"struct.boost::tuples::cons.42"* %this9, i32 0, i32 0
  %10 = load %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %10, %"struct.boost::detail::out_edge_iter"** %9, align 4
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorINS_12null_visitorEE14examine_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS8_EES8_S5_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_examine_vertex", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_17on_examine_vertexEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_17on_examine_vertexEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %v, i32 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %"struct.boost::null_visitor"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_examine_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"struct.boost::null_visitor"* %v, %"struct.boost::null_visitor"** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::null_visitor"** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%"struct.boost::null_visitor"* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr i32 @_ZNKSt6vectorIjSaIjEE4sizeEv(%"class.std::vector.3"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load i32** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %2, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  %3 = load i32** %_M_start, align 4
  %sub.ptr.lhs.cast = ptrtoint i32* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint i32* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  ret i32 %sub.ptr.div
}

define linkonce_odr i32* @_ZNSt6vectorIjSaIjEE4backEv(%"class.std::vector.3"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %tmp = alloca %"class.__gnu_cxx::__normal_iterator.47", align 4
  %ref.tmp = alloca i32, align 4
  %tmp2 = alloca %"class.__gnu_cxx::__normal_iterator.47", align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  call void @_ZNSt6vectorIjSaIjEE3endEv(%"class.__gnu_cxx::__normal_iterator.47"* sret %tmp, %"class.std::vector.3"* %this1)
  store i32 1, i32* %ref.tmp, align 4
  call void @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEmiERKi(%"class.__gnu_cxx::__normal_iterator.47"* sret %tmp2, %"class.__gnu_cxx::__normal_iterator.47"* %tmp, i32* %ref.tmp)
  %call = call i32* @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(%"class.__gnu_cxx::__normal_iterator.47"* %tmp2)
  ret i32* %call
}

define linkonce_odr void @_ZN5boost3putINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jiEEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.39"* %pa, i32 %k, i32* %v) inlinehint {
entry:
  %pa.addr = alloca %"struct.boost::put_get_helper.39"*, align 4
  %k.addr = alloca i32, align 4
  %v.addr = alloca i32*, align 4
  store %"struct.boost::put_get_helper.39"* %pa, %"struct.boost::put_get_helper.39"** %pa.addr, align 4
  store i32 %k, i32* %k.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  %0 = load i32** %v.addr, align 4
  %1 = load i32* %0, align 4
  %2 = load %"struct.boost::put_get_helper.39"** %pa.addr, align 4
  %3 = bitcast %"struct.boost::put_get_helper.39"* %2 to %"class.boost::iterator_property_map.38"*
  %4 = load i32* %k.addr, align 4
  %call = call i32* @_ZNK5boost21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEixEj(%"class.boost::iterator_property_map.38"* %3, i32 %4)
  store i32 %1, i32* %call
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEE8pop_backEv(%"class.std::vector.3"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load i32** %_M_finish, align 4
  %incdec.ptr = getelementptr inbounds i32* %1, i32 -1
  store i32* %incdec.ptr, i32** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %2, i32 0, i32 0
  %3 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2 to %"class.__gnu_cxx::new_allocator.6"*
  %4 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.4"* %4, i32 0, i32 0
  %_M_finish4 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl3, i32 0, i32 1
  %5 = load i32** %_M_finish4, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIjE7destroyEPj(%"class.__gnu_cxx::new_allocator.6"* %3, i32* %5)
  ret void
}

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE27preserve_heap_property_downEv(%"class.boost::d_ary_heap_indirect"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %index = alloca i32, align 4
  %currently_being_moved = alloca i32, align 4
  %currently_being_moved_dist = alloca i32, align 4
  %heap_size = alloca i32, align 4
  %data_ptr = alloca i32*, align 4
  %first_child_index = alloca i32, align 4
  %child_base_ptr = alloca i32*, align 4
  %smallest_child_index = alloca i32, align 4
  %smallest_child_dist = alloca i32, align 4
  %i = alloca i32, align 4
  %i_value = alloca i32, align 4
  %i_dist = alloca i32, align 4
  %i24 = alloca i32, align 4
  %i_dist28 = alloca i32, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %data = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call = call zeroext i1 @_ZNKSt6vectorIjSaIjEE5emptyEv(%"class.std::vector.3"* %data)
  br i1 %call, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  br label %return

if.end:                                           ; preds = %entry
  store i32 0, i32* %index, align 4
  %data2 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call3 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data2, i32 0)
  %0 = load i32* %call3
  store i32 %0, i32* %currently_being_moved, align 4
  %distance = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 2
  %1 = load i32** %distance, align 4
  %2 = load i32* %currently_being_moved, align 4
  %call4 = call i32* @_Z3getIiERKT_PS1_i(i32* %1, i32 %2)
  %3 = load i32* %call4
  store i32 %3, i32* %currently_being_moved_dist, align 4
  %data5 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call6 = call i32 @_ZNKSt6vectorIjSaIjEE4sizeEv(%"class.std::vector.3"* %data5)
  store i32 %call6, i32* %heap_size, align 4
  %data7 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %call8 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data7, i32 0)
  store i32* %call8, i32** %data_ptr, align 4
  br label %for.cond

for.cond:                                         ; preds = %if.then42, %if.end
  %4 = load i32* %index, align 4
  %call9 = call i32 @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE5childEjj(i32 %4, i32 0)
  store i32 %call9, i32* %first_child_index, align 4
  %5 = load i32* %first_child_index, align 4
  %6 = load i32* %heap_size, align 4
  %cmp = icmp uge i32 %5, %6
  br i1 %cmp, label %if.then10, label %if.end11

if.then10:                                        ; preds = %for.cond
  br label %for.end46

if.end11:                                         ; preds = %for.cond
  %7 = load i32** %data_ptr, align 4
  %8 = load i32* %first_child_index, align 4
  %add.ptr = getelementptr inbounds i32* %7, i32 %8
  store i32* %add.ptr, i32** %child_base_ptr, align 4
  store i32 0, i32* %smallest_child_index, align 4
  %distance12 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 2
  %9 = load i32** %distance12, align 4
  %10 = load i32* %smallest_child_index, align 4
  %11 = load i32** %child_base_ptr, align 4
  %arrayidx = getelementptr inbounds i32* %11, i32 %10
  %12 = load i32* %arrayidx, align 4
  %call13 = call i32* @_Z3getIiERKT_PS1_i(i32* %9, i32 %12)
  %13 = load i32* %call13
  store i32 %13, i32* %smallest_child_dist, align 4
  %14 = load i32* %first_child_index, align 4
  %add = add i32 %14, 4
  %15 = load i32* %heap_size, align 4
  %cmp14 = icmp ule i32 %add, %15
  br i1 %cmp14, label %if.then15, label %if.else

if.then15:                                        ; preds = %if.end11
  store i32 1, i32* %i, align 4
  br label %for.cond16

for.cond16:                                       ; preds = %for.inc, %if.then15
  %16 = load i32* %i, align 4
  %cmp17 = icmp ult i32 %16, 4
  br i1 %cmp17, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond16
  %17 = load i32* %i, align 4
  %18 = load i32** %child_base_ptr, align 4
  %arrayidx18 = getelementptr inbounds i32* %18, i32 %17
  %19 = load i32* %arrayidx18, align 4
  store i32 %19, i32* %i_value, align 4
  %distance19 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 2
  %20 = load i32** %distance19, align 4
  %21 = load i32* %i_value, align 4
  %call20 = call i32* @_Z3getIiERKT_PS1_i(i32* %20, i32 %21)
  %22 = load i32* %call20
  store i32 %22, i32* %i_dist, align 4
  %compare = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 0
  %call21 = call zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %compare, i32* %i_dist, i32* %smallest_child_dist)
  br i1 %call21, label %if.then22, label %if.end23

if.then22:                                        ; preds = %for.body
  %23 = load i32* %i, align 4
  store i32 %23, i32* %smallest_child_index, align 4
  %24 = load i32* %i_dist, align 4
  store i32 %24, i32* %smallest_child_dist, align 4
  br label %if.end23

if.end23:                                         ; preds = %if.then22, %for.body
  br label %for.inc

for.inc:                                          ; preds = %if.end23
  %25 = load i32* %i, align 4
  %inc = add i32 %25, 1
  store i32 %inc, i32* %i, align 4
  br label %for.cond16

for.end:                                          ; preds = %for.cond16
  br label %if.end39

if.else:                                          ; preds = %if.end11
  store i32 1, i32* %i24, align 4
  br label %for.cond25

for.cond25:                                       ; preds = %for.inc36, %if.else
  %26 = load i32* %i24, align 4
  %27 = load i32* %heap_size, align 4
  %28 = load i32* %first_child_index, align 4
  %sub = sub i32 %27, %28
  %cmp26 = icmp ult i32 %26, %sub
  br i1 %cmp26, label %for.body27, label %for.end38

for.body27:                                       ; preds = %for.cond25
  %distance29 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 2
  %29 = load i32** %distance29, align 4
  %30 = load i32* %i24, align 4
  %31 = load i32** %child_base_ptr, align 4
  %arrayidx30 = getelementptr inbounds i32* %31, i32 %30
  %32 = load i32* %arrayidx30, align 4
  %call31 = call i32* @_Z3getIiERKT_PS1_i(i32* %29, i32 %32)
  %33 = load i32* %call31
  store i32 %33, i32* %i_dist28, align 4
  %compare32 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 0
  %call33 = call zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %compare32, i32* %i_dist28, i32* %smallest_child_dist)
  br i1 %call33, label %if.then34, label %if.end35

if.then34:                                        ; preds = %for.body27
  %34 = load i32* %i24, align 4
  store i32 %34, i32* %smallest_child_index, align 4
  %35 = load i32* %i_dist28, align 4
  store i32 %35, i32* %smallest_child_dist, align 4
  br label %if.end35

if.end35:                                         ; preds = %if.then34, %for.body27
  br label %for.inc36

for.inc36:                                        ; preds = %if.end35
  %36 = load i32* %i24, align 4
  %inc37 = add i32 %36, 1
  store i32 %inc37, i32* %i24, align 4
  br label %for.cond25

for.end38:                                        ; preds = %for.cond25
  br label %if.end39

if.end39:                                         ; preds = %for.end38, %for.end
  %compare40 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 0
  %call41 = call zeroext i1 @_ZNKSt4lessIiEclERKiS2_(%"struct.std::less"* %compare40, i32* %smallest_child_dist, i32* %currently_being_moved_dist)
  br i1 %call41, label %if.then42, label %if.else45

if.then42:                                        ; preds = %if.end39
  %37 = load i32* %smallest_child_index, align 4
  %38 = load i32* %first_child_index, align 4
  %add43 = add i32 %37, %38
  %39 = load i32* %index, align 4
  call void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE18swap_heap_elementsEjj(%"class.boost::d_ary_heap_indirect"* %this1, i32 %add43, i32 %39)
  %40 = load i32* %smallest_child_index, align 4
  %41 = load i32* %first_child_index, align 4
  %add44 = add i32 %40, %41
  store i32 %add44, i32* %index, align 4
  br label %for.cond

if.else45:                                        ; preds = %if.end39
  br label %for.end46

for.end46:                                        ; preds = %if.else45, %if.then10
  call void @_ZNK5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE11verify_heapEv(%"class.boost::d_ary_heap_indirect"* %this1)
  br label %return

return:                                           ; preds = %for.end46, %if.then
  ret void
}

define linkonce_odr zeroext i1 @_ZNKSt6vectorIjSaIjEE5emptyEv(%"class.std::vector.3"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %ref.tmp2 = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  call void @_ZNKSt6vectorIjSaIjEE5beginEv(%"class.__gnu_cxx::__normal_iterator.46"* sret %ref.tmp, %"class.std::vector.3"* %this1)
  call void @_ZNKSt6vectorIjSaIjEE3endEv(%"class.__gnu_cxx::__normal_iterator.46"* sret %ref.tmp2, %"class.std::vector.3"* %this1)
  %call = call zeroext i1 @_ZN9__gnu_cxxeqIPKjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESB_(%"class.__gnu_cxx::__normal_iterator.46"* %ref.tmp, %"class.__gnu_cxx::__normal_iterator.46"* %ref.tmp2)
  ret i1 %call
}

define linkonce_odr i32 @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE5childEjj(i32 %index, i32 %child_idx) nounwind align 2 {
entry:
  %index.addr = alloca i32, align 4
  %child_idx.addr = alloca i32, align 4
  store i32 %index, i32* %index.addr, align 4
  store i32 %child_idx, i32* %child_idx.addr, align 4
  %0 = load i32* %index.addr, align 4
  %mul = mul i32 %0, 4
  %1 = load i32* %child_idx.addr, align 4
  %add = add i32 %mul, %1
  %add1 = add i32 %add, 1
  ret i32 %add1
}

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEE18swap_heap_elementsEjj(%"class.boost::d_ary_heap_indirect"* %this, i32 %index_a, i32 %index_b) align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %index_a.addr = alloca i32, align 4
  %index_b.addr = alloca i32, align 4
  %value_a = alloca i32, align 4
  %value_b = alloca i32, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  store i32 %index_a, i32* %index_a.addr, align 4
  store i32 %index_b, i32* %index_b.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %data = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %0 = load i32* %index_a.addr, align 4
  %call = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data, i32 %0)
  %1 = load i32* %call
  store i32 %1, i32* %value_a, align 4
  %data2 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %2 = load i32* %index_b.addr, align 4
  %call3 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data2, i32 %2)
  %3 = load i32* %call3
  store i32 %3, i32* %value_b, align 4
  %4 = load i32* %value_b, align 4
  %data4 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %5 = load i32* %index_a.addr, align 4
  %call5 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data4, i32 %5)
  store i32 %4, i32* %call5
  %6 = load i32* %value_a, align 4
  %data6 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %7 = load i32* %index_b.addr, align 4
  %call7 = call i32* @_ZNSt6vectorIjSaIjEEixEj(%"class.std::vector.3"* %data6, i32 %7)
  store i32 %6, i32* %call7
  %index_in_heap = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 3
  %8 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap to %"struct.boost::put_get_helper.39"*
  %9 = load i32* %value_a, align 4
  call void @_ZN5boost3putINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jjEEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.39"* %8, i32 %9, i32* %index_b.addr)
  %index_in_heap8 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 3
  %10 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap8 to %"struct.boost::put_get_helper.39"*
  %11 = load i32* %value_b, align 4
  call void @_ZN5boost3putINS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEES6_jjEEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.39"* %10, i32 %11, i32* %index_a.addr)
  ret void
}

define linkonce_odr zeroext i1 @_ZN9__gnu_cxxeqIPKjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESB_(%"class.__gnu_cxx::__normal_iterator.46"* %__lhs, %"class.__gnu_cxx::__normal_iterator.46"* %__rhs) inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.46"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.46"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.46"* %__lhs, %"class.__gnu_cxx::__normal_iterator.46"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator.46"* %__rhs, %"class.__gnu_cxx::__normal_iterator.46"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator.46"** %__lhs.addr, align 4
  %call = call i32** @_ZNK9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.46"* %0)
  %1 = load i32** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator.46"** %__rhs.addr, align 4
  %call1 = call i32** @_ZNK9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.46"* %2)
  %3 = load i32** %call1
  %cmp = icmp eq i32* %1, %3
  ret i1 %cmp
}

define linkonce_odr void @_ZNKSt6vectorIjSaIjEE5beginEv(%"class.__gnu_cxx::__normal_iterator.46"* noalias sret %agg.result, %"class.std::vector.3"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %ref.tmp = alloca i32*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load i32** %_M_start, align 4
  store i32* %1, i32** %ref.tmp, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEC1ERKS2_(%"class.__gnu_cxx::__normal_iterator.46"* %agg.result, i32** %ref.tmp)
  ret void
}

define linkonce_odr void @_ZNKSt6vectorIjSaIjEE3endEv(%"class.__gnu_cxx::__normal_iterator.46"* noalias sret %agg.result, %"class.std::vector.3"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %ref.tmp = alloca i32*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load i32** %_M_finish, align 4
  store i32* %1, i32** %ref.tmp, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEC1ERKS2_(%"class.__gnu_cxx::__normal_iterator.46"* %agg.result, i32** %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEC1ERKS2_(%"class.__gnu_cxx::__normal_iterator.46"* %this, i32** %__i) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.46"*, align 4
  %__i.addr = alloca i32**, align 4
  store %"class.__gnu_cxx::__normal_iterator.46"* %this, %"class.__gnu_cxx::__normal_iterator.46"** %this.addr, align 4
  store i32** %__i, i32*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.46"** %this.addr
  %0 = load i32*** %__i.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEC2ERKS2_(%"class.__gnu_cxx::__normal_iterator.46"* %this1, i32** %0)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEC2ERKS2_(%"class.__gnu_cxx::__normal_iterator.46"* %this, i32** %__i) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.46"*, align 4
  %__i.addr = alloca i32**, align 4
  store %"class.__gnu_cxx::__normal_iterator.46"* %this, %"class.__gnu_cxx::__normal_iterator.46"** %this.addr, align 4
  store i32** %__i, i32*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.46"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.46"* %this1, i32 0, i32 0
  %0 = load i32*** %__i.addr, align 4
  %1 = load i32** %0, align 4
  store i32* %1, i32** %_M_current, align 4
  ret void
}

define linkonce_odr i32** @_ZNK9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.46"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.46"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.46"* %this, %"class.__gnu_cxx::__normal_iterator.46"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.46"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.46"* %this1, i32 0, i32 0
  ret i32** %_M_current
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjE7destroyEPj(%"class.__gnu_cxx::new_allocator.6"* %this, i32* %__p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %__p.addr = alloca i32*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  %0 = load i32** %__p.addr, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEE3endEv(%"class.__gnu_cxx::__normal_iterator.47"* noalias sret %agg.result, %"class.std::vector.3"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  call void @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEC1ERKS1_(%"class.__gnu_cxx::__normal_iterator.47"* %agg.result, i32** %_M_finish)
  ret void
}

define linkonce_odr void @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEmiERKi(%"class.__gnu_cxx::__normal_iterator.47"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator.47"* %this, i32* %__n) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.47"*, align 4
  %__n.addr = alloca i32*, align 4
  %ref.tmp = alloca i32*, align 4
  store %"class.__gnu_cxx::__normal_iterator.47"* %this, %"class.__gnu_cxx::__normal_iterator.47"** %this.addr, align 4
  store i32* %__n, i32** %__n.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.47"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47"* %this1, i32 0, i32 0
  %0 = load i32** %_M_current, align 4
  %1 = load i32** %__n.addr, align 4
  %2 = load i32* %1, align 4
  %idx.neg = sub i32 0, %2
  %add.ptr = getelementptr inbounds i32* %0, i32 %idx.neg
  store i32* %add.ptr, i32** %ref.tmp, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEC1ERKS1_(%"class.__gnu_cxx::__normal_iterator.47"* %agg.result, i32** %ref.tmp)
  ret void
}

define linkonce_odr i32* @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(%"class.__gnu_cxx::__normal_iterator.47"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.47"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.47"* %this, %"class.__gnu_cxx::__normal_iterator.47"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.47"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47"* %this1, i32 0, i32 0
  %0 = load i32** %_M_current, align 4
  ret i32* %0
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEC1ERKS1_(%"class.__gnu_cxx::__normal_iterator.47"* %this, i32** %__i) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.47"*, align 4
  %__i.addr = alloca i32**, align 4
  store %"class.__gnu_cxx::__normal_iterator.47"* %this, %"class.__gnu_cxx::__normal_iterator.47"** %this.addr, align 4
  store i32** %__i, i32*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.47"** %this.addr
  %0 = load i32*** %__i.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEC2ERKS1_(%"class.__gnu_cxx::__normal_iterator.47"* %this1, i32** %0)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEC2ERKS1_(%"class.__gnu_cxx::__normal_iterator.47"* %this, i32** %__i) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.47"*, align 4
  %__i.addr = alloca i32**, align 4
  store %"class.__gnu_cxx::__normal_iterator.47"* %this, %"class.__gnu_cxx::__normal_iterator.47"** %this.addr, align 4
  store i32** %__i, i32*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.47"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47"* %this1, i32 0, i32 0
  %0 = load i32*** %__i.addr, align 4
  %1 = load i32** %0, align 4
  store i32* %1, i32** %_M_current, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEE9push_backERKj(%"class.std::vector.3"* %this, i32* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__x.addr = alloca i32*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.47", align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load i32** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %2, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %3 = load i32** %_M_end_of_storage, align 4
  %cmp = icmp ne i32* %1, %3
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %4 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.4"* %4, i32 0, i32 0
  %5 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl3 to %"class.__gnu_cxx::new_allocator.6"*
  %6 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl4 = getelementptr inbounds %"struct.std::_Vector_base.4"* %6, i32 0, i32 0
  %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl4, i32 0, i32 1
  %7 = load i32** %_M_finish5, align 4
  %8 = load i32** %__x.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIjE9constructEPjRKj(%"class.__gnu_cxx::new_allocator.6"* %5, i32* %7, i32* %8)
  %9 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.4"* %9, i32 0, i32 0
  %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl6, i32 0, i32 1
  %10 = load i32** %_M_finish7, align 4
  %incdec.ptr = getelementptr inbounds i32* %10, i32 1
  store i32* %incdec.ptr, i32** %_M_finish7, align 4
  br label %if.end

if.else:                                          ; preds = %entry
  call void @_ZNSt6vectorIjSaIjEE3endEv(%"class.__gnu_cxx::__normal_iterator.47"* sret %agg.tmp, %"class.std::vector.3"* %this1)
  %11 = load i32** %__x.addr, align 4
  call void @_ZNSt6vectorIjSaIjEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPjS1_EERKj(%"class.std::vector.3"* %this1, %"class.__gnu_cxx::__normal_iterator.47"* byval align 4 %agg.tmp, i32* %11)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjE9constructEPjRKj(%"class.__gnu_cxx::new_allocator.6"* %this, i32* %__p, i32* %__val) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %__p.addr = alloca i32*, align 4
  %__val.addr = alloca i32*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  store i32* %__val, i32** %__val.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  %0 = load i32** %__p.addr, align 4
  %1 = bitcast i32* %0 to i8*
  %new.isnull = icmp eq i8* %1, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %2 = bitcast i8* %1 to i32*
  %3 = load i32** %__val.addr, align 4
  %4 = load i32* %3, align 4
  store i32 %4, i32* %2, align 4
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %5 = phi i32* [ %2, %new.notnull ], [ null, %entry ]
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPjS1_EERKj(%"class.std::vector.3"* %this, %"class.__gnu_cxx::__normal_iterator.47"* byval align 4 %__position, i32* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__x.addr = alloca i32*, align 4
  %__x_copy = alloca i32, align 4
  %__len = alloca i32, align 4
  %__elems_before = alloca i32, align 4
  %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator.47", align 4
  %__new_start = alloca i32*, align 4
  %__new_finish = alloca i32*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load i32** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %2, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %3 = load i32** %_M_end_of_storage, align 4
  %cmp = icmp ne i32* %1, %3
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %4 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.4"* %4, i32 0, i32 0
  %5 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl3 to %"class.__gnu_cxx::new_allocator.6"*
  %6 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl4 = getelementptr inbounds %"struct.std::_Vector_base.4"* %6, i32 0, i32 0
  %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl4, i32 0, i32 1
  %7 = load i32** %_M_finish5, align 4
  %8 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.4"* %8, i32 0, i32 0
  %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl6, i32 0, i32 1
  %9 = load i32** %_M_finish7, align 4
  %add.ptr = getelementptr inbounds i32* %9, i32 -1
  call void @_ZN9__gnu_cxx13new_allocatorIjE9constructEPjRKj(%"class.__gnu_cxx::new_allocator.6"* %5, i32* %7, i32* %add.ptr)
  %10 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl8 = getelementptr inbounds %"struct.std::_Vector_base.4"* %10, i32 0, i32 0
  %_M_finish9 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl8, i32 0, i32 1
  %11 = load i32** %_M_finish9, align 4
  %incdec.ptr = getelementptr inbounds i32* %11, i32 1
  store i32* %incdec.ptr, i32** %_M_finish9, align 4
  %12 = load i32** %__x.addr, align 4
  %13 = load i32* %12, align 4
  store i32 %13, i32* %__x_copy, align 4
  %call = call i32** @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.47"* %__position)
  %14 = load i32** %call
  %15 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl10 = getelementptr inbounds %"struct.std::_Vector_base.4"* %15, i32 0, i32 0
  %_M_finish11 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl10, i32 0, i32 1
  %16 = load i32** %_M_finish11, align 4
  %add.ptr12 = getelementptr inbounds i32* %16, i32 -2
  %17 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl13 = getelementptr inbounds %"struct.std::_Vector_base.4"* %17, i32 0, i32 0
  %_M_finish14 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl13, i32 0, i32 1
  %18 = load i32** %_M_finish14, align 4
  %add.ptr15 = getelementptr inbounds i32* %18, i32 -1
  %call16 = call i32* @_ZSt13copy_backwardIPjS0_ET0_T_S2_S1_(i32* %14, i32* %add.ptr12, i32* %add.ptr15)
  %19 = load i32* %__x_copy, align 4
  %call17 = call i32* @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(%"class.__gnu_cxx::__normal_iterator.47"* %__position)
  store i32 %19, i32* %call17
  br label %if.end68

if.else:                                          ; preds = %entry
  %call18 = call i32 @_ZNKSt6vectorIjSaIjEE12_M_check_lenEjPKc(%"class.std::vector.3"* %this1, i32 1, i8* getelementptr inbounds ([22 x i8]* @.str25, i32 0, i32 0))
  store i32 %call18, i32* %__len, align 4
  call void @_ZNSt6vectorIjSaIjEE5beginEv(%"class.__gnu_cxx::__normal_iterator.47"* sret %ref.tmp, %"class.std::vector.3"* %this1)
  %call19 = call i32 @_ZN9__gnu_cxxmiIPjSt6vectorIjSaIjEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(%"class.__gnu_cxx::__normal_iterator.47"* %__position, %"class.__gnu_cxx::__normal_iterator.47"* %ref.tmp)
  store i32 %call19, i32* %__elems_before, align 4
  %20 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %21 = load i32* %__len, align 4
  %call20 = call i32* @_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEj(%"struct.std::_Vector_base.4"* %20, i32 %21)
  store i32* %call20, i32** %__new_start, align 4
  %22 = load i32** %__new_start, align 4
  store i32* %22, i32** %__new_finish, align 4
  %23 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl21 = getelementptr inbounds %"struct.std::_Vector_base.4"* %23, i32 0, i32 0
  %24 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl21 to %"class.__gnu_cxx::new_allocator.6"*
  %25 = load i32** %__new_start, align 4
  %26 = load i32* %__elems_before, align 4
  %add.ptr22 = getelementptr inbounds i32* %25, i32 %26
  %27 = load i32** %__x.addr, align 4
  invoke void @_ZN9__gnu_cxx13new_allocatorIjE9constructEPjRKj(%"class.__gnu_cxx::new_allocator.6"* %24, i32* %add.ptr22, i32* %27)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.else
  store i32* null, i32** %__new_finish, align 4
  %28 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl23 = getelementptr inbounds %"struct.std::_Vector_base.4"* %28, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl23, i32 0, i32 0
  %29 = load i32** %_M_start, align 4
  %call25 = invoke i32** @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.47"* %__position)
          to label %invoke.cont24 unwind label %lpad

invoke.cont24:                                    ; preds = %invoke.cont
  %30 = load i32** %call25
  %31 = load i32** %__new_start, align 4
  %32 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call27 = invoke %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %32)
          to label %invoke.cont26 unwind label %lpad

invoke.cont26:                                    ; preds = %invoke.cont24
  %call29 = invoke i32* @_ZSt22__uninitialized_move_aIPjS0_SaIjEET0_T_S3_S2_RT1_(i32* %29, i32* %30, i32* %31, %"class.std::allocator.5"* %call27)
          to label %invoke.cont28 unwind label %lpad

invoke.cont28:                                    ; preds = %invoke.cont26
  store i32* %call29, i32** %__new_finish, align 4
  %33 = load i32** %__new_finish, align 4
  %incdec.ptr30 = getelementptr inbounds i32* %33, i32 1
  store i32* %incdec.ptr30, i32** %__new_finish, align 4
  %call32 = invoke i32** @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.47"* %__position)
          to label %invoke.cont31 unwind label %lpad

invoke.cont31:                                    ; preds = %invoke.cont28
  %34 = load i32** %call32
  %35 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl33 = getelementptr inbounds %"struct.std::_Vector_base.4"* %35, i32 0, i32 0
  %_M_finish34 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl33, i32 0, i32 1
  %36 = load i32** %_M_finish34, align 4
  %37 = load i32** %__new_finish, align 4
  %38 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call36 = invoke %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %38)
          to label %invoke.cont35 unwind label %lpad

invoke.cont35:                                    ; preds = %invoke.cont31
  %call38 = invoke i32* @_ZSt22__uninitialized_move_aIPjS0_SaIjEET0_T_S3_S2_RT1_(i32* %34, i32* %36, i32* %37, %"class.std::allocator.5"* %call36)
          to label %invoke.cont37 unwind label %lpad

invoke.cont37:                                    ; preds = %invoke.cont35
  store i32* %call38, i32** %__new_finish, align 4
  br label %try.cont

lpad:                                             ; preds = %invoke.cont35, %invoke.cont31, %invoke.cont28, %invoke.cont26, %invoke.cont24, %invoke.cont, %if.else
  %39 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %40 = extractvalue { i8*, i32 } %39, 0
  store i8* %40, i8** %exn.slot
  %41 = extractvalue { i8*, i32 } %39, 1
  store i32 %41, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %42 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %43 = load i32** %__new_finish, align 4
  %tobool = icmp ne i32* %43, null
  br i1 %tobool, label %if.else44, label %if.then39

if.then39:                                        ; preds = %catch
  %44 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl40 = getelementptr inbounds %"struct.std::_Vector_base.4"* %44, i32 0, i32 0
  %45 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl40 to %"class.__gnu_cxx::new_allocator.6"*
  %46 = load i32** %__new_start, align 4
  %47 = load i32* %__elems_before, align 4
  %add.ptr41 = getelementptr inbounds i32* %46, i32 %47
  invoke void @_ZN9__gnu_cxx13new_allocatorIjE7destroyEPj(%"class.__gnu_cxx::new_allocator.6"* %45, i32* %add.ptr41)
          to label %invoke.cont43 unwind label %lpad42

invoke.cont43:                                    ; preds = %if.then39
  br label %if.end

lpad42:                                           ; preds = %invoke.cont48, %if.end, %invoke.cont45, %if.else44, %if.then39
  %48 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %49 = extractvalue { i8*, i32 } %48, 0
  store i8* %49, i8** %exn.slot
  %50 = extractvalue { i8*, i32 } %48, 1
  store i32 %50, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont49 unwind label %terminate.lpad

if.else44:                                        ; preds = %catch
  %51 = load i32** %__new_start, align 4
  %52 = load i32** %__new_finish, align 4
  %53 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call46 = invoke %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %53)
          to label %invoke.cont45 unwind label %lpad42

invoke.cont45:                                    ; preds = %if.else44
  invoke void @_ZSt8_DestroyIPjjEvT_S1_RSaIT0_E(i32* %51, i32* %52, %"class.std::allocator.5"* %call46)
          to label %invoke.cont47 unwind label %lpad42

invoke.cont47:                                    ; preds = %invoke.cont45
  br label %if.end

if.end:                                           ; preds = %invoke.cont47, %invoke.cont43
  %54 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %55 = load i32** %__new_start, align 4
  %56 = load i32* %__len, align 4
  invoke void @_ZNSt12_Vector_baseIjSaIjEE13_M_deallocateEPjj(%"struct.std::_Vector_base.4"* %54, i32* %55, i32 %56)
          to label %invoke.cont48 unwind label %lpad42

invoke.cont48:                                    ; preds = %if.end
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad42

invoke.cont49:                                    ; preds = %lpad42
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont37
  %57 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl50 = getelementptr inbounds %"struct.std::_Vector_base.4"* %57, i32 0, i32 0
  %_M_start51 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl50, i32 0, i32 0
  %58 = load i32** %_M_start51, align 4
  %59 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl52 = getelementptr inbounds %"struct.std::_Vector_base.4"* %59, i32 0, i32 0
  %_M_finish53 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl52, i32 0, i32 1
  %60 = load i32** %_M_finish53, align 4
  %61 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call54 = call %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %61)
  call void @_ZSt8_DestroyIPjjEvT_S1_RSaIT0_E(i32* %58, i32* %60, %"class.std::allocator.5"* %call54)
  %62 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %63 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl55 = getelementptr inbounds %"struct.std::_Vector_base.4"* %63, i32 0, i32 0
  %_M_start56 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl55, i32 0, i32 0
  %64 = load i32** %_M_start56, align 4
  %65 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl57 = getelementptr inbounds %"struct.std::_Vector_base.4"* %65, i32 0, i32 0
  %_M_end_of_storage58 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl57, i32 0, i32 2
  %66 = load i32** %_M_end_of_storage58, align 4
  %67 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl59 = getelementptr inbounds %"struct.std::_Vector_base.4"* %67, i32 0, i32 0
  %_M_start60 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl59, i32 0, i32 0
  %68 = load i32** %_M_start60, align 4
  %sub.ptr.lhs.cast = ptrtoint i32* %66 to i32
  %sub.ptr.rhs.cast = ptrtoint i32* %68 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  call void @_ZNSt12_Vector_baseIjSaIjEE13_M_deallocateEPjj(%"struct.std::_Vector_base.4"* %62, i32* %64, i32 %sub.ptr.div)
  %69 = load i32** %__new_start, align 4
  %70 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl61 = getelementptr inbounds %"struct.std::_Vector_base.4"* %70, i32 0, i32 0
  %_M_start62 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl61, i32 0, i32 0
  store i32* %69, i32** %_M_start62, align 4
  %71 = load i32** %__new_finish, align 4
  %72 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl63 = getelementptr inbounds %"struct.std::_Vector_base.4"* %72, i32 0, i32 0
  %_M_finish64 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl63, i32 0, i32 1
  store i32* %71, i32** %_M_finish64, align 4
  %73 = load i32** %__new_start, align 4
  %74 = load i32* %__len, align 4
  %add.ptr65 = getelementptr inbounds i32* %73, i32 %74
  %75 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl66 = getelementptr inbounds %"struct.std::_Vector_base.4"* %75, i32 0, i32 0
  %_M_end_of_storage67 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl66, i32 0, i32 2
  store i32* %add.ptr65, i32** %_M_end_of_storage67, align 4
  br label %if.end68

if.end68:                                         ; preds = %try.cont, %if.then
  ret void

eh.resume:                                        ; preds = %invoke.cont49
  %exn69 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn69, 0
  %lpad.val70 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val70

terminate.lpad:                                   ; preds = %lpad42
  %76 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont48
  unreachable
}

define linkonce_odr i32* @_ZSt13copy_backwardIPjS0_ET0_T_S2_S1_(i32* %__first, i32* %__last, i32* %__result) {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %call = call i32* @_ZSt12__miter_baseIPjENSt11_Miter_baseIT_E13iterator_typeES2_(i32* %0)
  %1 = load i32** %__last.addr, align 4
  %call1 = call i32* @_ZSt12__miter_baseIPjENSt11_Miter_baseIT_E13iterator_typeES2_(i32* %1)
  %2 = load i32** %__result.addr, align 4
  %call2 = call i32* @_ZSt23__copy_move_backward_a2ILb0EPjS0_ET1_T0_S2_S1_(i32* %call, i32* %call1, i32* %2)
  ret i32* %call2
}

define linkonce_odr i32** @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.47"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.47"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.47"* %this, %"class.__gnu_cxx::__normal_iterator.47"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.47"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.47"* %this1, i32 0, i32 0
  ret i32** %_M_current
}

define linkonce_odr i32 @_ZNKSt6vectorIjSaIjEE12_M_check_lenEjPKc(%"class.std::vector.3"* %this, i32 %__n, i8* %__s) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__n.addr = alloca i32, align 4
  %__s.addr = alloca i8*, align 4
  %__len = alloca i32, align 4
  %ref.tmp = alloca i32, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %__s, i8** %__s.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %call = call i32 @_ZNKSt6vectorIjSaIjEE8max_sizeEv(%"class.std::vector.3"* %this1)
  %call2 = call i32 @_ZNKSt6vectorIjSaIjEE4sizeEv(%"class.std::vector.3"* %this1)
  %sub = sub i32 %call, %call2
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ult i32 %sub, %0
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %1 = load i8** %__s.addr, align 4
  call void @_ZSt20__throw_length_errorPKc(i8* %1) noreturn
  unreachable

if.end:                                           ; preds = %entry
  %call3 = call i32 @_ZNKSt6vectorIjSaIjEE4sizeEv(%"class.std::vector.3"* %this1)
  %call4 = call i32 @_ZNKSt6vectorIjSaIjEE4sizeEv(%"class.std::vector.3"* %this1)
  store i32 %call4, i32* %ref.tmp, align 4
  %call5 = call i32* @_ZSt3maxIjERKT_S2_S2_(i32* %ref.tmp, i32* %__n.addr)
  %2 = load i32* %call5
  %add = add i32 %call3, %2
  store i32 %add, i32* %__len, align 4
  %3 = load i32* %__len, align 4
  %call6 = call i32 @_ZNKSt6vectorIjSaIjEE4sizeEv(%"class.std::vector.3"* %this1)
  %cmp7 = icmp ult i32 %3, %call6
  br i1 %cmp7, label %cond.true, label %lor.lhs.false

lor.lhs.false:                                    ; preds = %if.end
  %4 = load i32* %__len, align 4
  %call8 = call i32 @_ZNKSt6vectorIjSaIjEE8max_sizeEv(%"class.std::vector.3"* %this1)
  %cmp9 = icmp ugt i32 %4, %call8
  br i1 %cmp9, label %cond.true, label %cond.false

cond.true:                                        ; preds = %lor.lhs.false, %if.end
  %call10 = call i32 @_ZNKSt6vectorIjSaIjEE8max_sizeEv(%"class.std::vector.3"* %this1)
  br label %cond.end

cond.false:                                       ; preds = %lor.lhs.false
  %5 = load i32* %__len, align 4
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32 [ %call10, %cond.true ], [ %5, %cond.false ]
  ret i32 %cond
}

define linkonce_odr i32 @_ZN9__gnu_cxxmiIPjSt6vectorIjSaIjEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(%"class.__gnu_cxx::__normal_iterator.47"* %__lhs, %"class.__gnu_cxx::__normal_iterator.47"* %__rhs) inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.47"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.47"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.47"* %__lhs, %"class.__gnu_cxx::__normal_iterator.47"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator.47"* %__rhs, %"class.__gnu_cxx::__normal_iterator.47"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator.47"** %__lhs.addr, align 4
  %call = call i32** @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.47"* %0)
  %1 = load i32** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator.47"** %__rhs.addr, align 4
  %call1 = call i32** @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.47"* %2)
  %3 = load i32** %call1
  %sub.ptr.lhs.cast = ptrtoint i32* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint i32* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  ret i32 %sub.ptr.div
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEE5beginEv(%"class.__gnu_cxx::__normal_iterator.47"* noalias sret %agg.result, %"class.std::vector.3"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  call void @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEC1ERKS1_(%"class.__gnu_cxx::__normal_iterator.47"* %agg.result, i32** %_M_start)
  ret void
}

define linkonce_odr i32* @_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEj(%"struct.std::_Vector_base.4"* %this, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ne i32 %0, 0
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.6"*
  %2 = load i32* %__n.addr, align 4
  %call = call i32* @_ZN9__gnu_cxx13new_allocatorIjE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.6"* %1, i32 %2, i8* null)
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32* [ %call, %cond.true ], [ null, %cond.false ]
  ret i32* %cond
}

define linkonce_odr i32* @_ZSt22__uninitialized_move_aIPjS0_SaIjEET0_T_S3_S2_RT1_(i32* %__first, i32* %__last, i32* %__result, %"class.std::allocator.5"* %__alloc) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  %__alloc.addr = alloca %"class.std::allocator.5"*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  store %"class.std::allocator.5"* %__alloc, %"class.std::allocator.5"** %__alloc.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32** %__last.addr, align 4
  %2 = load i32** %__result.addr, align 4
  %3 = load %"class.std::allocator.5"** %__alloc.addr, align 4
  %call = call i32* @_ZSt22__uninitialized_copy_aIPjS0_jET0_T_S2_S1_RSaIT1_E(i32* %0, i32* %1, i32* %2, %"class.std::allocator.5"* %3)
  ret i32* %call
}

define linkonce_odr %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl to %"class.std::allocator.5"*
  ret %"class.std::allocator.5"* %0
}

declare i8* @__cxa_begin_catch(i8*)

define linkonce_odr void @_ZSt8_DestroyIPjjEvT_S1_RSaIT0_E(i32* %__first, i32* %__last, %"class.std::allocator.5"*) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %.addr = alloca %"class.std::allocator.5"*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store %"class.std::allocator.5"* %0, %"class.std::allocator.5"** %.addr, align 4
  %1 = load i32** %__first.addr, align 4
  %2 = load i32** %__last.addr, align 4
  call void @_ZSt8_DestroyIPjEvT_S1_(i32* %1, i32* %2)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE13_M_deallocateEPjj(%"struct.std::_Vector_base.4"* %this, i32* %__p, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  %__p.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %0 = load i32** %__p.addr, align 4
  %tobool = icmp ne i32* %0, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.6"*
  %2 = load i32** %__p.addr, align 4
  %3 = load i32* %__n.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIjE10deallocateEPjj(%"class.__gnu_cxx::new_allocator.6"* %1, i32* %2, i32 %3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

declare void @__cxa_rethrow()

declare void @__cxa_end_catch()

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjE10deallocateEPjj(%"class.__gnu_cxx::new_allocator.6"* %this, i32* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %__p.addr = alloca i32*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  %1 = load i32** %__p.addr, align 4
  %2 = bitcast i32* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIPjEvT_S1_(i32* %__first, i32* %__last) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32** %__last.addr, align 4
  call void @_ZNSt12_Destroy_auxILb1EE9__destroyIPjEEvT_S3_(i32* %0, i32* %1)
  ret void
}

define linkonce_odr void @_ZNSt12_Destroy_auxILb1EE9__destroyIPjEEvT_S3_(i32*, i32*) nounwind align 2 {
entry:
  %.addr = alloca i32*, align 4
  %.addr1 = alloca i32*, align 4
  store i32* %0, i32** %.addr, align 4
  store i32* %1, i32** %.addr1, align 4
  ret void
}

define linkonce_odr i32* @_ZSt22__uninitialized_copy_aIPjS0_jET0_T_S2_S1_RSaIT1_E(i32* %__first, i32* %__last, i32* %__result, %"class.std::allocator.5"*) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  %.addr = alloca %"class.std::allocator.5"*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  store %"class.std::allocator.5"* %0, %"class.std::allocator.5"** %.addr, align 4
  %1 = load i32** %__first.addr, align 4
  %2 = load i32** %__last.addr, align 4
  %3 = load i32** %__result.addr, align 4
  %call = call i32* @_ZSt18uninitialized_copyIPjS0_ET0_T_S2_S1_(i32* %1, i32* %2, i32* %3)
  ret i32* %call
}

define linkonce_odr i32* @_ZSt18uninitialized_copyIPjS0_ET0_T_S2_S1_(i32* %__first, i32* %__last, i32* %__result) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32** %__last.addr, align 4
  %2 = load i32** %__result.addr, align 4
  %call = call i32* @_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPjS2_EET0_T_S4_S3_(i32* %0, i32* %1, i32* %2)
  ret i32* %call
}

define linkonce_odr i32* @_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPjS2_EET0_T_S4_S3_(i32* %__first, i32* %__last, i32* %__result) align 2 {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32** %__last.addr, align 4
  %2 = load i32** %__result.addr, align 4
  %call = call i32* @_ZSt4copyIPjS0_ET0_T_S2_S1_(i32* %0, i32* %1, i32* %2)
  ret i32* %call
}

define linkonce_odr i32* @_ZSt4copyIPjS0_ET0_T_S2_S1_(i32* %__first, i32* %__last, i32* %__result) {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %call = call i32* @_ZSt12__miter_baseIPjENSt11_Miter_baseIT_E13iterator_typeES2_(i32* %0)
  %1 = load i32** %__last.addr, align 4
  %call1 = call i32* @_ZSt12__miter_baseIPjENSt11_Miter_baseIT_E13iterator_typeES2_(i32* %1)
  %2 = load i32** %__result.addr, align 4
  %call2 = call i32* @_ZSt14__copy_move_a2ILb0EPjS0_ET1_T0_S2_S1_(i32* %call, i32* %call1, i32* %2)
  ret i32* %call2
}

define linkonce_odr i32* @_ZSt14__copy_move_a2ILb0EPjS0_ET1_T0_S2_S1_(i32* %__first, i32* %__last, i32* %__result) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %call = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %0)
  %1 = load i32** %__last.addr, align 4
  %call1 = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %1)
  %2 = load i32** %__result.addr, align 4
  %call2 = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %2)
  %call3 = call i32* @_ZSt13__copy_move_aILb0EPjS0_ET1_T0_S2_S1_(i32* %call, i32* %call1, i32* %call2)
  ret i32* %call3
}

define linkonce_odr i32* @_ZSt12__miter_baseIPjENSt11_Miter_baseIT_E13iterator_typeES2_(i32* %__it) inlinehint {
entry:
  %__it.addr = alloca i32*, align 4
  store i32* %__it, i32** %__it.addr, align 4
  %0 = load i32** %__it.addr, align 4
  %call = call i32* @_ZNSt10_Iter_baseIPjLb0EE7_S_baseES0_(i32* %0)
  ret i32* %call
}

define linkonce_odr i32* @_ZNSt10_Iter_baseIPjLb0EE7_S_baseES0_(i32* %__it) nounwind align 2 {
entry:
  %__it.addr = alloca i32*, align 4
  store i32* %__it, i32** %__it.addr, align 4
  %0 = load i32** %__it.addr, align 4
  ret i32* %0
}

define linkonce_odr i32* @_ZSt13__copy_move_aILb0EPjS0_ET1_T0_S2_S1_(i32* %__first, i32* %__last, i32* %__result) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  %__simple = alloca i8, align 1
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  store i8 1, i8* %__simple, align 1
  %0 = load i32** %__first.addr, align 4
  %1 = load i32** %__last.addr, align 4
  %2 = load i32** %__result.addr, align 4
  %call = call i32* @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIjEEPT_PKS3_S6_S4_(i32* %0, i32* %1, i32* %2)
  ret i32* %call
}

define linkonce_odr i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %__it) nounwind inlinehint {
entry:
  %__it.addr = alloca i32*, align 4
  store i32* %__it, i32** %__it.addr, align 4
  %0 = load i32** %__it.addr, align 4
  %call = call i32* @_ZNSt10_Iter_baseIPjLb0EE7_S_baseES0_(i32* %0)
  ret i32* %call
}

define linkonce_odr i32* @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIjEEPT_PKS3_S6_S4_(i32* %__first, i32* %__last, i32* %__result) nounwind align 2 {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  %_Num = alloca i32, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = load i32** %__last.addr, align 4
  %1 = load i32** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint i32* %0 to i32
  %sub.ptr.rhs.cast = ptrtoint i32* %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  store i32 %sub.ptr.div, i32* %_Num, align 4
  %2 = load i32* %_Num, align 4
  %tobool = icmp ne i32 %2, 0
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %3 = load i32** %__result.addr, align 4
  %4 = bitcast i32* %3 to i8*
  %5 = load i32** %__first.addr, align 4
  %6 = bitcast i32* %5 to i8*
  %7 = load i32* %_Num, align 4
  %mul = mul i32 4, %7
  call void @llvm.memmove.p0i8.p0i8.i32(i8* %4, i8* %6, i32 %mul, i32 4, i1 false)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  %8 = load i32** %__result.addr, align 4
  %9 = load i32* %_Num, align 4
  %add.ptr = getelementptr inbounds i32* %8, i32 %9
  ret i32* %add.ptr
}

declare void @llvm.memmove.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind

define linkonce_odr i32* @_ZN9__gnu_cxx13new_allocatorIjE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.6"* %this, i32 %__n, i8*) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %__n.addr = alloca i32, align 4
  %.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %0, i8** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  %1 = load i32* %__n.addr, align 4
  %call = call i32 @_ZNK9__gnu_cxx13new_allocatorIjE8max_sizeEv(%"class.__gnu_cxx::new_allocator.6"* %this1) nounwind
  %cmp = icmp ugt i32 %1, %call
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt17__throw_bad_allocv() noreturn
  unreachable

if.end:                                           ; preds = %entry
  %2 = load i32* %__n.addr, align 4
  %mul = mul i32 %2, 4
  %call2 = call noalias i8* @_Znwj(i32 %mul)
  %3 = bitcast i8* %call2 to i32*
  ret i32* %3
}

define linkonce_odr i32 @_ZNK9__gnu_cxx13new_allocatorIjE8max_sizeEv(%"class.__gnu_cxx::new_allocator.6"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  ret i32 1073741823
}

declare void @_ZSt17__throw_bad_allocv() noreturn

define linkonce_odr i32 @_ZNKSt6vectorIjSaIjEE8max_sizeEv(%"class.std::vector.3"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call = call %"class.std::allocator.5"* @_ZNKSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %0)
  %1 = bitcast %"class.std::allocator.5"* %call to %"class.__gnu_cxx::new_allocator.6"*
  %call2 = call i32 @_ZNK9__gnu_cxx13new_allocatorIjE8max_sizeEv(%"class.__gnu_cxx::new_allocator.6"* %1) nounwind
  ret i32 %call2
}

declare void @_ZSt20__throw_length_errorPKc(i8*) noreturn

define linkonce_odr i32* @_ZSt3maxIjERKT_S2_S2_(i32* %__a, i32* %__b) nounwind {
entry:
  %retval = alloca i32*, align 4
  %__a.addr = alloca i32*, align 4
  %__b.addr = alloca i32*, align 4
  store i32* %__a, i32** %__a.addr, align 4
  store i32* %__b, i32** %__b.addr, align 4
  %0 = load i32** %__a.addr, align 4
  %1 = load i32* %0, align 4
  %2 = load i32** %__b.addr, align 4
  %3 = load i32* %2, align 4
  %cmp = icmp ult i32 %1, %3
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %4 = load i32** %__b.addr, align 4
  store i32* %4, i32** %retval
  br label %return

if.end:                                           ; preds = %entry
  %5 = load i32** %__a.addr, align 4
  store i32* %5, i32** %retval
  br label %return

return:                                           ; preds = %if.end, %if.then
  %6 = load i32** %retval
  ret i32* %6
}

define linkonce_odr %"class.std::allocator.5"* @_ZNKSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl to %"class.std::allocator.5"*
  ret %"class.std::allocator.5"* %0
}

define linkonce_odr i32* @_ZSt23__copy_move_backward_a2ILb0EPjS0_ET1_T0_S2_S1_(i32* %__first, i32* %__last, i32* %__result) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %call = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %0)
  %1 = load i32** %__last.addr, align 4
  %call1 = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %1)
  %2 = load i32** %__result.addr, align 4
  %call2 = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %2)
  %call3 = call i32* @_ZSt22__copy_move_backward_aILb0EPjS0_ET1_T0_S2_S1_(i32* %call, i32* %call1, i32* %call2)
  ret i32* %call3
}

define linkonce_odr i32* @_ZSt22__copy_move_backward_aILb0EPjS0_ET1_T0_S2_S1_(i32* %__first, i32* %__last, i32* %__result) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  %__simple = alloca i8, align 1
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  store i8 1, i8* %__simple, align 1
  %0 = load i32** %__first.addr, align 4
  %1 = load i32** %__last.addr, align 4
  %2 = load i32** %__result.addr, align 4
  %call = call i32* @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIjEEPT_PKS3_S6_S4_(i32* %0, i32* %1, i32* %2)
  ret i32* %call
}

define linkonce_odr i32* @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIjEEPT_PKS3_S6_S4_(i32* %__first, i32* %__last, i32* %__result) nounwind align 2 {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  %_Num = alloca i32, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = load i32** %__last.addr, align 4
  %1 = load i32** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint i32* %0 to i32
  %sub.ptr.rhs.cast = ptrtoint i32* %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  store i32 %sub.ptr.div, i32* %_Num, align 4
  %2 = load i32* %_Num, align 4
  %tobool = icmp ne i32 %2, 0
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %3 = load i32** %__result.addr, align 4
  %4 = load i32* %_Num, align 4
  %idx.neg = sub i32 0, %4
  %add.ptr = getelementptr inbounds i32* %3, i32 %idx.neg
  %5 = bitcast i32* %add.ptr to i8*
  %6 = load i32** %__first.addr, align 4
  %7 = bitcast i32* %6 to i8*
  %8 = load i32* %_Num, align 4
  %mul = mul i32 4, %8
  call void @llvm.memmove.p0i8.p0i8.i32(i8* %5, i8* %7, i32 %mul, i32 4, i1 false)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  %9 = load i32** %__result.addr, align 4
  %10 = load i32* %_Num, align 4
  %idx.neg1 = sub i32 0, %10
  %add.ptr2 = getelementptr inbounds i32* %9, i32 %idx.neg1
  ret i32* %add.ptr2
}

define linkonce_odr void @_ZN5boost11bfs_visitorINS_12null_visitorEE15discover_vertexIjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS8_EES8_S5_EEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_discover_vertex", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_18on_discover_vertexEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_18on_discover_vertexEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %v, i32 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %"struct.boost::null_visitor"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_discover_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"struct.boost::null_visitor"* %v, %"struct.boost::null_visitor"** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::null_visitor"** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%"struct.boost::null_visitor"* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost6detail13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC2Ev(%"struct.boost::detail::out_edge_iter"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  %0 = bitcast %"struct.boost::detail::out_edge_iter"* %this1 to %"class.boost::iterator_adaptor"*
  call void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iEC2Ev(%"class.boost::iterator_adaptor"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESA_SD_NS_11use_defaultESD_iEC2Ev(%"class.boost::iterator_adaptor"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %0 = bitcast %"class.boost::iterator_adaptor"* %this1 to %"class.boost::iterator_facade.27"*
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  call void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1Ev(%"struct.std::_List_iterator"* %m_iterator)
  ret void
}

define linkonce_odr void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1Ev(%"struct.std::_List_iterator"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_iterator"*, align 4
  store %"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_List_iterator"** %this.addr
  call void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC2Ev(%"struct.std::_List_iterator"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC2Ev(%"struct.std::_List_iterator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_iterator"*, align 4
  store %"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_List_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %this1, i32 0, i32 0
  store %"struct.std::__detail::_List_node_base"* null, %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail20dijkstra_bfs_visitorINS_16dijkstra_visitorINS_12null_visitorEEENS_19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEENS_26adj_list_edge_property_mapINS_12directed_tagEiRKijKNS_8propertyINS_13edge_weight_tEiS9_EESP_EES7_SD_NS_11closed_plusIiEESF_EC2ES4_RSJ_SS_S7_SD_SU_SF_i(%"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"class.boost::dijkstra_visitor"* byval align 4 %vis, %"class.boost::d_ary_heap_indirect"* %Q, %"struct.boost::adj_list_edge_property_map.33"* byval align 4 %w, i32* %p, i32* %d, %"struct.boost::closed_plus"* byval align 4 %combine, i32 %zero) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::dijkstra_bfs_visitor"*, align 4
  %Q.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %p.addr = alloca i32*, align 4
  %d.addr = alloca i32*, align 4
  %compare = alloca %"struct.std::less", align 1
  %zero.addr = alloca i32, align 4
  store %"struct.boost::detail::dijkstra_bfs_visitor"* %this, %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr, align 4
  store %"class.boost::d_ary_heap_indirect"* %Q, %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  store i32* %d, i32** %d.addr, align 4
  store i32 %zero, i32* %zero.addr, align 4
  %this1 = load %"struct.boost::detail::dijkstra_bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::dijkstra_visitor"* %m_vis to i8*
  %1 = bitcast %"class.boost::dijkstra_visitor"* %vis to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 1, i32 1, i1 false)
  %2 = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 1
  %3 = load %"class.boost::d_ary_heap_indirect"** %Q.addr, align 4
  store %"class.boost::d_ary_heap_indirect"* %3, %"class.boost::d_ary_heap_indirect"** %2, align 4
  %m_weight = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 2
  %4 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %m_weight to i8*
  %5 = bitcast %"struct.boost::adj_list_edge_property_map.33"* %w to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  %m_predecessor = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 3
  %6 = load i32** %p.addr, align 4
  store i32* %6, i32** %m_predecessor, align 4
  %m_distance = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 4
  %7 = load i32** %d.addr, align 4
  store i32* %7, i32** %m_distance, align 4
  %m_combine = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 5
  %8 = bitcast %"struct.boost::closed_plus"* %m_combine to i8*
  %9 = bitcast %"struct.boost::closed_plus"* %combine to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %8, i8* %9, i32 4, i32 4, i1 false)
  %m_compare = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 6
  %m_zero = getelementptr inbounds %"struct.boost::detail::dijkstra_bfs_visitor"* %this1, i32 0, i32 7
  %10 = load i32* %zero.addr, align 4
  store i32 %10, i32* %m_zero, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEEC2Ev(%"class.std::vector.3"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  call void @_ZNSt12_Vector_baseIjSaIjEEC2Ev(%"struct.std::_Vector_base.4"* %0)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEEC2Ev(%"struct.std::_Vector_base.4"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC2Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC2Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1 to %"class.std::allocator.5"*
  call void @_ZNSaIjEC2Ev(%"class.std::allocator.5"* %0) nounwind
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, i32 0, i32 0
  store i32* null, i32** %_M_start, align 4
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, i32 0, i32 1
  store i32* null, i32** %_M_finish, align 4
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, i32 0, i32 2
  store i32* null, i32** %_M_end_of_storage, align 4
  ret void
}

define linkonce_odr void @_ZNSaIjEC2Ev(%"class.std::allocator.5"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  %0 = bitcast %"class.std::allocator.5"* %this1 to %"class.__gnu_cxx::new_allocator.6"*
  call void @_ZN9__gnu_cxx13new_allocatorIjEC2Ev(%"class.__gnu_cxx::new_allocator.6"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjEC2Ev(%"class.__gnu_cxx::new_allocator.6"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost19d_ary_heap_indirectIjLj4ENS_21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEEPiSt4lessIiESt6vectorIjSaIjEEEC2ES8_S7_RKSA_RKSD_(%"class.boost::d_ary_heap_indirect"* %this, i32* %distance, %"class.boost::iterator_property_map.38"* byval align 4 %index_in_heap, %"struct.std::less"* %compare, %"class.std::vector.3"* %data) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::d_ary_heap_indirect"*, align 4
  %distance.addr = alloca i32*, align 4
  %compare.addr = alloca %"struct.std::less"*, align 4
  %data.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.boost::d_ary_heap_indirect"* %this, %"class.boost::d_ary_heap_indirect"** %this.addr, align 4
  store i32* %distance, i32** %distance.addr, align 4
  store %"struct.std::less"* %compare, %"struct.std::less"** %compare.addr, align 4
  store %"class.std::vector.3"* %data, %"class.std::vector.3"** %data.addr, align 4
  %this1 = load %"class.boost::d_ary_heap_indirect"** %this.addr
  %compare2 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 0
  %0 = load %"struct.std::less"** %compare.addr, align 4
  %data3 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 1
  %1 = load %"class.std::vector.3"** %data.addr, align 4
  call void @_ZNSt6vectorIjSaIjEEC1ERKS1_(%"class.std::vector.3"* %data3, %"class.std::vector.3"* %1)
  %distance4 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 2
  %2 = load i32** %distance.addr, align 4
  store i32* %2, i32** %distance4, align 4
  %index_in_heap5 = getelementptr inbounds %"class.boost::d_ary_heap_indirect"* %this1, i32 0, i32 3
  %3 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap5 to i8*
  %4 = bitcast %"class.boost::iterator_property_map.38"* %index_in_heap to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 8, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEEC1ERKS1_(%"class.std::vector.3"* %this, %"class.std::vector.3"* %__x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__x.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store %"class.std::vector.3"* %__x, %"class.std::vector.3"** %__x.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = load %"class.std::vector.3"** %__x.addr
  call void @_ZNSt6vectorIjSaIjEEC2ERKS1_(%"class.std::vector.3"* %this1, %"class.std::vector.3"* %0)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEEC2ERKS1_(%"class.std::vector.3"* %this, %"class.std::vector.3"* %__x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__x.addr = alloca %"class.std::vector.3"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp3 = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store %"class.std::vector.3"* %__x, %"class.std::vector.3"** %__x.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %1 = load %"class.std::vector.3"** %__x.addr, align 4
  %call = call i32 @_ZNKSt6vectorIjSaIjEE4sizeEv(%"class.std::vector.3"* %1)
  %2 = load %"class.std::vector.3"** %__x.addr, align 4
  %3 = bitcast %"class.std::vector.3"* %2 to %"struct.std::_Vector_base.4"*
  %call2 = call %"class.std::allocator.5"* @_ZNKSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %3)
  call void @_ZNSt12_Vector_baseIjSaIjEEC2EjRKS0_(%"struct.std::_Vector_base.4"* %0, i32 %call, %"class.std::allocator.5"* %call2)
  %4 = load %"class.std::vector.3"** %__x.addr, align 4
  invoke void @_ZNKSt6vectorIjSaIjEE5beginEv(%"class.__gnu_cxx::__normal_iterator.46"* sret %agg.tmp, %"class.std::vector.3"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %5 = load %"class.std::vector.3"** %__x.addr, align 4
  invoke void @_ZNKSt6vectorIjSaIjEE3endEv(%"class.__gnu_cxx::__normal_iterator.46"* sret %agg.tmp3, %"class.std::vector.3"* %5)
          to label %invoke.cont4 unwind label %lpad

invoke.cont4:                                     ; preds = %invoke.cont
  %6 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %6, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %7 = load i32** %_M_start, align 4
  %8 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call6 = invoke %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %8)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont4
  %call8 = invoke i32* @_ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjjET0_T_SA_S9_RSaIT1_E(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp3, i32* %7, %"class.std::allocator.5"* %call6)
          to label %invoke.cont7 unwind label %lpad

invoke.cont7:                                     ; preds = %invoke.cont5
  %9 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl9 = getelementptr inbounds %"struct.std::_Vector_base.4"* %9, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl9, i32 0, i32 1
  store i32* %call8, i32** %_M_finish, align 4
  ret void

lpad:                                             ; preds = %invoke.cont5, %invoke.cont4, %invoke.cont, %entry
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %11 = extractvalue { i8*, i32 } %10, 0
  store i8* %11, i8** %exn.slot
  %12 = extractvalue { i8*, i32 } %10, 1
  store i32 %12, i32* %ehselector.slot
  %13 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  invoke void @_ZNSt12_Vector_baseIjSaIjEED2Ev(%"struct.std::_Vector_base.4"* %13)
          to label %invoke.cont10 unwind label %terminate.lpad

invoke.cont10:                                    ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont10
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val11 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val11

terminate.lpad:                                   ; preds = %lpad
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEEC2EjRKS0_(%"struct.std::_Vector_base.4"* %this, i32 %__n, %"class.std::allocator.5"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  %__n.addr = alloca i32, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %0 = load %"class.std::allocator.5"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC1ERKS0_(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, %"class.std::allocator.5"* %0)
  %1 = load i32* %__n.addr, align 4
  %call = invoke i32* @_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEj(%"struct.std::_Vector_base.4"* %this1, i32 %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  store i32* %call, i32** %_M_start, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load i32** %_M_start4, align 4
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl5, i32 0, i32 1
  store i32* %2, i32** %_M_finish, align 4
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start7 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl6, i32 0, i32 0
  %3 = load i32** %_M_start7, align 4
  %4 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds i32* %3, i32 %4
  %_M_impl8 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl8, i32 0, i32 2
  store i32* %add.ptr, i32** %_M_end_of_storage, align 4
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9
}

define linkonce_odr i32* @_ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjjET0_T_SA_S9_RSaIT1_E(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__last, i32* %__result, %"class.std::allocator.5"*) inlinehint {
entry:
  %__result.addr = alloca i32*, align 4
  %.addr = alloca %"class.std::allocator.5"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  store i32* %__result, i32** %__result.addr, align 4
  store %"class.std::allocator.5"* %0, %"class.std::allocator.5"** %.addr, align 4
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp to i8*
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp1 to i8*
  %4 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 4, i32 4, i1 false)
  %5 = load i32** %__result.addr, align 4
  %call = call i32* @_ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjET0_T_SA_S9_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp1, i32* %5)
  ret i32* %call
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEED2Ev(%"struct.std::_Vector_base.4"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %0 = load i32** %_M_start, align 4
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %1 = load i32** %_M_end_of_storage, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load i32** %_M_start4, align 4
  %sub.ptr.lhs.cast = ptrtoint i32* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint i32* %2 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  invoke void @_ZNSt12_Vector_baseIjSaIjEE13_M_deallocateEPjj(%"struct.std::_Vector_base.4"* %this1, i32* %0, i32 %sub.ptr.div)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl5) nounwind
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl6) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD2Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD2Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1 to %"class.std::allocator.5"*
  call void @_ZNSaIjED2Ev(%"class.std::allocator.5"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIjED2Ev(%"class.std::allocator.5"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  %0 = bitcast %"class.std::allocator.5"* %this1 to %"class.__gnu_cxx::new_allocator.6"*
  call void @_ZN9__gnu_cxx13new_allocatorIjED2Ev(%"class.__gnu_cxx::new_allocator.6"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjED2Ev(%"class.__gnu_cxx::new_allocator.6"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  ret void
}

define linkonce_odr i32* @_ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjET0_T_SA_S9_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__last, i32* %__result) inlinehint {
entry:
  %__result.addr = alloca i32*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp1 to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = load i32** %__result.addr, align 4
  %call = call i32* @_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjEET0_T_SC_SB_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp1, i32* %4)
  ret i32* %call
}

define linkonce_odr i32* @_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjEET0_T_SC_SB_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__last, i32* %__result) align 2 {
entry:
  %__result.addr = alloca i32*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp1 to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = load i32** %__result.addr, align 4
  %call = call i32* @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjET0_T_SA_S9_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp1, i32* %4)
  ret i32* %call
}

define linkonce_odr i32* @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjET0_T_SA_S9_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__last, i32* %__result) {
entry:
  %__result.addr = alloca i32*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %agg.tmp2 = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %agg.tmp3 = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp1 to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  call void @_ZSt12__miter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEENSt11_Miter_baseIT_E13iterator_typeES9_(%"class.__gnu_cxx::__normal_iterator.46"* sret %agg.tmp, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp1)
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp3 to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  call void @_ZSt12__miter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEENSt11_Miter_baseIT_E13iterator_typeES9_(%"class.__gnu_cxx::__normal_iterator.46"* sret %agg.tmp2, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp3)
  %4 = load i32** %__result.addr, align 4
  %call = call i32* @_ZSt14__copy_move_a2ILb0EN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjET1_T0_SA_S9_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp2, i32* %4)
  ret i32* %call
}

define linkonce_odr i32* @_ZSt14__copy_move_a2ILb0EN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEPjET1_T0_SA_S9_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__last, i32* %__result) inlinehint {
entry:
  %__result.addr = alloca i32*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  store i32* %__result, i32** %__result.addr, align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %call = call i32* @_ZSt12__niter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEENSt11_Niter_baseIT_E13iterator_typeES9_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp)
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp1 to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %call2 = call i32* @_ZSt12__niter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEENSt11_Niter_baseIT_E13iterator_typeES9_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp1)
  %4 = load i32** %__result.addr, align 4
  %call3 = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %4)
  %call4 = call i32* @_ZSt13__copy_move_aILb0EPKjPjET1_T0_S4_S3_(i32* %call, i32* %call2, i32* %call3)
  ret i32* %call4
}

define linkonce_odr void @_ZSt12__miter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEENSt11_Miter_baseIT_E13iterator_typeES9_(%"class.__gnu_cxx::__normal_iterator.46"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__it) inlinehint {
entry:
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__it to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  call void @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEELb0EE7_S_baseES7_(%"class.__gnu_cxx::__normal_iterator.46"* sret %agg.result, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp)
  ret void
}

define linkonce_odr void @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEELb0EE7_S_baseES7_(%"class.__gnu_cxx::__normal_iterator.46"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__it) nounwind align 2 {
entry:
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.result to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__it to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr i32* @_ZSt13__copy_move_aILb0EPKjPjET1_T0_S4_S3_(i32* %__first, i32* %__last, i32* %__result) nounwind inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__result.addr = alloca i32*, align 4
  %__simple = alloca i8, align 1
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__result, i32** %__result.addr, align 4
  store i8 1, i8* %__simple, align 1
  %0 = load i32** %__first.addr, align 4
  %1 = load i32** %__last.addr, align 4
  %2 = load i32** %__result.addr, align 4
  %call = call i32* @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIjEEPT_PKS3_S6_S4_(i32* %0, i32* %1, i32* %2)
  ret i32* %call
}

define linkonce_odr i32* @_ZSt12__niter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEEENSt11_Niter_baseIT_E13iterator_typeES9_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__it) inlinehint {
entry:
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.46", align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.46"* %__it to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %call = call i32* @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEELb1EE7_S_baseES7_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %agg.tmp)
  ret i32* %call
}

define linkonce_odr i32* @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEELb1EE7_S_baseES7_(%"class.__gnu_cxx::__normal_iterator.46"* byval align 4 %__it) nounwind align 2 {
entry:
  %call = call i32** @_ZNK9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEE4baseEv(%"class.__gnu_cxx::__normal_iterator.46"* %__it)
  %0 = load i32** %call
  ret i32* %0
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC1ERKS0_(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"class.std::allocator.5"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  %0 = load %"class.std::allocator.5"** %__a.addr
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC2ERKS0_(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, %"class.std::allocator.5"* %0)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC2ERKS0_(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"class.std::allocator.5"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1 to %"class.std::allocator.5"*
  %1 = load %"class.std::allocator.5"** %__a.addr, align 4
  call void @_ZNSaIjEC2ERKS_(%"class.std::allocator.5"* %0, %"class.std::allocator.5"* %1) nounwind
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, i32 0, i32 0
  store i32* null, i32** %_M_start, align 4
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, i32 0, i32 1
  store i32* null, i32** %_M_finish, align 4
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, i32 0, i32 2
  store i32* null, i32** %_M_end_of_storage, align 4
  ret void
}

define linkonce_odr void @_ZNSaIjEC2ERKS_(%"class.std::allocator.5"* %this, %"class.std::allocator.5"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  %0 = bitcast %"class.std::allocator.5"* %this1 to %"class.__gnu_cxx::new_allocator.6"*
  %1 = load %"class.std::allocator.5"** %__a.addr, align 4
  %2 = bitcast %"class.std::allocator.5"* %1 to %"class.__gnu_cxx::new_allocator.6"*
  call void @_ZN9__gnu_cxx13new_allocatorIjEC2ERKS1_(%"class.__gnu_cxx::new_allocator.6"* %0, %"class.__gnu_cxx::new_allocator.6"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjEC2ERKS1_(%"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %0, %"class.__gnu_cxx::new_allocator.6"** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost6detail36vertex_property_map_generator_helperINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_26vec_adj_list_vertex_id_mapIS6_jEEjLb1EE5buildERKSA_RKSC_RNS_12scoped_arrayIjEE(%"class.boost::iterator_property_map.38"* noalias sret %agg.result, %"class.boost::adjacency_list"* %g, %"struct.boost::vec_adj_list_vertex_id_map"* %index, %"class.boost::scoped_array"* %array_holder) align 2 {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %index.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %array_holder.addr = alloca %"class.boost::scoped_array"*, align 4
  %ref.tmp = alloca i32, align 4
  %agg.tmp = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %index, %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  store %"class.boost::scoped_array"* %array_holder, %"class.boost::scoped_array"** %array_holder.addr, align 4
  %0 = load %"class.boost::scoped_array"** %array_holder.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %2 = bitcast %"class.boost::adjacency_list"* %1 to %"struct.boost::adj_list_helper"*
  %call = call i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISG_T0_EE(%"struct.boost::adj_list_helper"* %2)
  %3 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %call, i32 4)
  %4 = extractvalue { i32, i1 } %3, 1
  %5 = extractvalue { i32, i1 } %3, 0
  %6 = select i1 %4, i32 -1, i32 %5
  %call1 = call noalias i8* @_Znaj(i32 %6)
  %7 = bitcast i8* %call1 to i32*
  call void @_ZN5boost12scoped_arrayIjE5resetEPj(%"class.boost::scoped_array"* %0, i32* %7)
  %8 = load %"class.boost::scoped_array"** %array_holder.addr, align 4
  %call2 = call i32* @_ZNK5boost12scoped_arrayIjE3getEv(%"class.boost::scoped_array"* %8)
  %9 = load %"class.boost::scoped_array"** %array_holder.addr, align 4
  %call3 = call i32* @_ZNK5boost12scoped_arrayIjE3getEv(%"class.boost::scoped_array"* %9)
  %10 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %11 = bitcast %"class.boost::adjacency_list"* %10 to %"struct.boost::adj_list_helper"*
  %call4 = call i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISG_T0_EE(%"struct.boost::adj_list_helper"* %11)
  %add.ptr = getelementptr inbounds i32* %call3, i32 %call4
  store i32 0, i32* %ref.tmp, align 4
  call void @_ZSt4fillIPjjEvT_S1_RKT0_(i32* %call2, i32* %add.ptr, i32* %ref.tmp)
  %12 = load %"class.boost::scoped_array"** %array_holder.addr, align 4
  %call5 = call i32* @_ZNK5boost12scoped_arrayIjE3getEv(%"class.boost::scoped_array"* %12)
  %13 = load %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  call void @_ZN5boost26make_iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_21iterator_property_mapIT_T0_NSt15iterator_traitsIS6_E10value_typeENS9_9referenceEEES6_S7_(%"class.boost::iterator_property_map.38"* sret %agg.result, i32* %call5)
  ret void
}

define linkonce_odr void @_ZN5boost12scoped_arrayIjE5resetEPj(%"class.boost::scoped_array"* %this, i32* %p) align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_array"*, align 4
  %p.addr = alloca i32*, align 4
  %temp.lvalue = alloca %"class.boost::scoped_array", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::scoped_array"* %this, %"class.boost::scoped_array"** %this.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  %this1 = load %"class.boost::scoped_array"** %this.addr
  %0 = load i32** %p.addr, align 4
  %cmp = icmp eq i32* %0, null
  br i1 %cmp, label %cond.true, label %lor.lhs.false

lor.lhs.false:                                    ; preds = %entry
  %1 = load i32** %p.addr, align 4
  %px = getelementptr inbounds %"class.boost::scoped_array"* %this1, i32 0, i32 0
  %2 = load i32** %px, align 4
  %cmp2 = icmp ne i32* %1, %2
  br i1 %cmp2, label %cond.true, label %cond.false

cond.true:                                        ; preds = %lor.lhs.false, %entry
  br label %cond.end

cond.false:                                       ; preds = %lor.lhs.false
  call void @__assert_fail(i8* getelementptr inbounds ([18 x i8]* @.str26, i32 0, i32 0), i8* getelementptr inbounds ([59 x i8]* @.str27, i32 0, i32 0), i32 73, i8* getelementptr inbounds ([70 x i8]* @__PRETTY_FUNCTION__._ZN5boost12scoped_arrayIjE5resetEPj, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end

cond.end:                                         ; preds = %3, %cond.true
  %4 = load i32** %p.addr, align 4
  call void @_ZN5boost12scoped_arrayIjEC1EPj(%"class.boost::scoped_array"* %temp.lvalue, i32* %4)
  invoke void @_ZN5boost12scoped_arrayIjE4swapERS1_(%"class.boost::scoped_array"* %temp.lvalue, %"class.boost::scoped_array"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %cond.end
  call void @_ZN5boost12scoped_arrayIjED1Ev(%"class.boost::scoped_array"* %temp.lvalue)
  ret void

lpad:                                             ; preds = %cond.end
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  invoke void @_ZN5boost12scoped_arrayIjED1Ev(%"class.boost::scoped_array"* %temp.lvalue)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

declare { i32, i1 } @llvm.umul.with.overflow.i32(i32, i32) nounwind readnone

declare noalias i8* @_Znaj(i32)

define linkonce_odr void @_ZSt4fillIPjjEvT_S1_RKT0_(i32* %__first, i32* %__last, i32* %__value) {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__value.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %call = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %0)
  %1 = load i32** %__last.addr, align 4
  %call1 = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %1)
  %2 = load i32** %__value.addr, align 4
  call void @_ZSt8__fill_aIPjjEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT0_EE7__valueEvE6__typeET_S6_RKS3_(i32* %call, i32* %call1, i32* %2)
  ret void
}

define linkonce_odr i32* @_ZNK5boost12scoped_arrayIjE3getEv(%"class.boost::scoped_array"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_array"*, align 4
  store %"class.boost::scoped_array"* %this, %"class.boost::scoped_array"** %this.addr, align 4
  %this1 = load %"class.boost::scoped_array"** %this.addr
  %px = getelementptr inbounds %"class.boost::scoped_array"* %this1, i32 0, i32 0
  %0 = load i32** %px, align 4
  ret i32* %0
}

define linkonce_odr void @_ZN5boost26make_iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_21iterator_property_mapIT_T0_NSt15iterator_traitsIS6_E10value_typeENS9_9referenceEEES6_S7_(%"class.boost::iterator_property_map.38"* noalias sret %agg.result, i32* %iter) inlinehint {
entry:
  %iter.addr = alloca i32*, align 4
  %id = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  store i32* %iter, i32** %iter.addr, align 4
  call void @_ZN5boost17function_requiresINS_27RandomAccessIteratorConceptIPjEEEEvPT_(%"struct.boost::RandomAccessIteratorConcept.48"* null)
  %0 = load i32** %iter.addr, align 4
  call void @_ZN5boost21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEC1ES1_RKS4_(%"class.boost::iterator_property_map.38"* %agg.result, i32* %0, %"struct.boost::vec_adj_list_vertex_id_map"* %id)
  ret void
}

define linkonce_odr void @_ZN5boost17function_requiresINS_27RandomAccessIteratorConceptIPjEEEEvPT_(%"struct.boost::RandomAccessIteratorConcept.48"*) nounwind inlinehint {
entry:
  %.addr = alloca %"struct.boost::RandomAccessIteratorConcept.48"*, align 4
  store %"struct.boost::RandomAccessIteratorConcept.48"* %0, %"struct.boost::RandomAccessIteratorConcept.48"** %.addr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEC1ES1_RKS4_(%"class.boost::iterator_property_map.38"* %this, i32* %cc, %"struct.boost::vec_adj_list_vertex_id_map"* %_id) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_property_map.38"*, align 4
  %cc.addr = alloca i32*, align 4
  %_id.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store %"class.boost::iterator_property_map.38"* %this, %"class.boost::iterator_property_map.38"** %this.addr, align 4
  store i32* %cc, i32** %cc.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %_id, %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr, align 4
  %this1 = load %"class.boost::iterator_property_map.38"** %this.addr
  %0 = load i32** %cc.addr, align 4
  %1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr
  call void @_ZN5boost21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEC2ES1_RKS4_(%"class.boost::iterator_property_map.38"* %this1, i32* %0, %"struct.boost::vec_adj_list_vertex_id_map"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost21iterator_property_mapIPjNS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjRjEC2ES1_RKS4_(%"class.boost::iterator_property_map.38"* %this, i32* %cc, %"struct.boost::vec_adj_list_vertex_id_map"* %_id) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_property_map.38"*, align 4
  %cc.addr = alloca i32*, align 4
  %_id.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store %"class.boost::iterator_property_map.38"* %this, %"class.boost::iterator_property_map.38"** %this.addr, align 4
  store i32* %cc, i32** %cc.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %_id, %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr, align 4
  %this1 = load %"class.boost::iterator_property_map.38"** %this.addr
  %0 = bitcast %"class.boost::iterator_property_map.38"* %this1 to %"struct.boost::put_get_helper.39"*
  %iter = getelementptr inbounds %"class.boost::iterator_property_map.38"* %this1, i32 0, i32 0
  %1 = load i32** %cc.addr, align 4
  store i32* %1, i32** %iter, align 4
  %index = getelementptr inbounds %"class.boost::iterator_property_map.38"* %this1, i32 0, i32 1
  %2 = load %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr, align 4
  ret void
}

define linkonce_odr void @_ZSt8__fill_aIPjjEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT0_EE7__valueEvE6__typeET_S6_RKS3_(i32* %__first, i32* %__last, i32* %__value) nounwind inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %__value.addr = alloca i32*, align 4
  %__tmp = alloca i32, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__value.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %__tmp, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = load i32** %__first.addr, align 4
  %3 = load i32** %__last.addr, align 4
  %cmp = icmp ne i32* %2, %3
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %4 = load i32* %__tmp, align 4
  %5 = load i32** %__first.addr, align 4
  store i32 %4, i32* %5, align 4
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %6 = load i32** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds i32* %6, i32 1
  store i32* %incdec.ptr, i32** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr void @_ZN5boost12scoped_arrayIjE4swapERS1_(%"class.boost::scoped_array"* %this, %"class.boost::scoped_array"* %b) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_array"*, align 4
  %b.addr = alloca %"class.boost::scoped_array"*, align 4
  %tmp = alloca i32*, align 4
  store %"class.boost::scoped_array"* %this, %"class.boost::scoped_array"** %this.addr, align 4
  store %"class.boost::scoped_array"* %b, %"class.boost::scoped_array"** %b.addr, align 4
  %this1 = load %"class.boost::scoped_array"** %this.addr
  %0 = load %"class.boost::scoped_array"** %b.addr, align 4
  %px = getelementptr inbounds %"class.boost::scoped_array"* %0, i32 0, i32 0
  %1 = load i32** %px, align 4
  store i32* %1, i32** %tmp, align 4
  %px2 = getelementptr inbounds %"class.boost::scoped_array"* %this1, i32 0, i32 0
  %2 = load i32** %px2, align 4
  %3 = load %"class.boost::scoped_array"** %b.addr, align 4
  %px3 = getelementptr inbounds %"class.boost::scoped_array"* %3, i32 0, i32 0
  store i32* %2, i32** %px3, align 4
  %4 = load i32** %tmp, align 4
  %px4 = getelementptr inbounds %"class.boost::scoped_array"* %this1, i32 0, i32 0
  store i32* %4, i32** %px4, align 4
  ret void
}

define linkonce_odr void @_ZN5boost12scoped_arrayIjEC2EPj(%"class.boost::scoped_array"* %this, i32* %p) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_array"*, align 4
  %p.addr = alloca i32*, align 4
  store %"class.boost::scoped_array"* %this, %"class.boost::scoped_array"** %this.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  %this1 = load %"class.boost::scoped_array"** %this.addr
  %px = getelementptr inbounds %"class.boost::scoped_array"* %this1, i32 0, i32 0
  %0 = load i32** %p.addr, align 4
  store i32* %0, i32** %px, align 4
  ret void
}

define linkonce_odr void @_ZN5boost12indirect_cmpIPiSt4lessIiEEC2ERKS1_RKS3_(%"class.boost::indirect_cmp"* %this, i32** %df, %"struct.std::less"* %c) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::indirect_cmp"*, align 4
  %df.addr = alloca i32**, align 4
  %c.addr = alloca %"struct.std::less"*, align 4
  store %"class.boost::indirect_cmp"* %this, %"class.boost::indirect_cmp"** %this.addr, align 4
  store i32** %df, i32*** %df.addr, align 4
  store %"struct.std::less"* %c, %"struct.std::less"** %c.addr, align 4
  %this1 = load %"class.boost::indirect_cmp"** %this.addr
  %d = getelementptr inbounds %"class.boost::indirect_cmp"* %this1, i32 0, i32 0
  %0 = load i32*** %df.addr, align 4
  %1 = load i32** %0, align 4
  store i32* %1, i32** %d, align 4
  %cmp = getelementptr inbounds %"class.boost::indirect_cmp"* %this1, i32 0, i32 1
  %2 = load %"struct.std::less"** %c.addr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EENS_20on_initialize_vertexEEEvRT_T0_RT1_T2_(%"struct.boost::null_visitor"* %v, i32 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %"struct.boost::null_visitor"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_initialize_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"struct.boost::null_visitor"* %v, %"struct.boost::null_visitor"** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::null_visitor"** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchINS_12null_visitorEjKNS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%"struct.boost::null_visitor"* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2EjRKS3_(%"struct.boost::two_bit_color_map"* %this, i32 %n, %"struct.boost::vec_adj_list_vertex_id_map"* %index) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %n.addr = alloca i32, align 4
  %index.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp = alloca i32, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %index, %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %n2 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 0
  %0 = load i32* %n.addr, align 4
  store i32 %0, i32* %n2, align 4
  %index3 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 1
  %1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  %2 = load i32* %n.addr, align 4
  %add = add i32 %2, 4
  %sub = sub i32 %add, 1
  %div = udiv i32 %sub, 4
  %call = call noalias i8* @_Znaj(i32 %div)
  call void @_ZN5boost12shared_arrayIhEC1EPh(%"class.boost::shared_array"* %data, i8* %call)
  %data4 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  %call5 = invoke i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %data6 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  %call8 = invoke i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data6)
          to label %invoke.cont7 unwind label %lpad

invoke.cont7:                                     ; preds = %invoke.cont
  %3 = load i32* %n.addr, align 4
  %add9 = add i32 %3, 4
  %sub10 = sub i32 %add9, 1
  %div11 = udiv i32 %sub10, 4
  %add.ptr = getelementptr inbounds i8* %call8, i32 %div11
  store i32 0, i32* %ref.tmp, align 4
  invoke void @_ZSt4fillIPhiEvT_S1_RKT0_(i8* %call5, i8* %add.ptr, i32* %ref.tmp)
          to label %invoke.cont12 unwind label %lpad

invoke.cont12:                                    ; preds = %invoke.cont7
  ret void

lpad:                                             ; preds = %invoke.cont7, %invoke.cont, %entry
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %5 = extractvalue { i8*, i32 } %4, 0
  store i8* %5, i8** %exn.slot
  %6 = extractvalue { i8*, i32 } %4, 1
  store i32 %6, i32* %ehselector.slot
  invoke void @_ZN5boost12shared_arrayIhED1Ev(%"class.boost::shared_array"* %data)
          to label %invoke.cont13 unwind label %terminate.lpad

invoke.cont13:                                    ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont13
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val14 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val14

terminate.lpad:                                   ; preds = %lpad
  %7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost12shared_arrayIhEC1EPh(%"class.boost::shared_array"* %this, i8* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  %p.addr = alloca i8*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %0 = load i8** %p.addr, align 4
  call void @_ZN5boost12shared_arrayIhEC2EPh(%"class.boost::shared_array"* %this1, i8* %0)
  ret void
}

define linkonce_odr void @_ZSt4fillIPhiEvT_S1_RKT0_(i8* %__first, i8* %__last, i32* %__value) {
entry:
  %__first.addr = alloca i8*, align 4
  %__last.addr = alloca i8*, align 4
  %__value.addr = alloca i32*, align 4
  store i8* %__first, i8** %__first.addr, align 4
  store i8* %__last, i8** %__last.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i8** %__first.addr, align 4
  %call = call i8* @_ZSt12__niter_baseIPhENSt11_Niter_baseIT_E13iterator_typeES2_(i8* %0)
  %1 = load i8** %__last.addr, align 4
  %call1 = call i8* @_ZSt12__niter_baseIPhENSt11_Niter_baseIT_E13iterator_typeES2_(i8* %1)
  %2 = load i32** %__value.addr, align 4
  call void @_ZSt8__fill_aIPhiEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT0_EE7__valueEvE6__typeET_S6_RKS3_(i8* %call, i8* %call1, i32* %2)
  ret void
}

define linkonce_odr void @_ZSt8__fill_aIPhiEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT0_EE7__valueEvE6__typeET_S6_RKS3_(i8* %__first, i8* %__last, i32* %__value) nounwind inlinehint {
entry:
  %__first.addr = alloca i8*, align 4
  %__last.addr = alloca i8*, align 4
  %__value.addr = alloca i32*, align 4
  %__tmp = alloca i32, align 4
  store i8* %__first, i8** %__first.addr, align 4
  store i8* %__last, i8** %__last.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__value.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %__tmp, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = load i8** %__first.addr, align 4
  %3 = load i8** %__last.addr, align 4
  %cmp = icmp ne i8* %2, %3
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %4 = load i32* %__tmp, align 4
  %conv = trunc i32 %4 to i8
  %5 = load i8** %__first.addr, align 4
  store i8 %conv, i8* %5, align 1
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %6 = load i8** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds i8* %6, i32 1
  store i8* %incdec.ptr, i8** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr i8* @_ZSt12__niter_baseIPhENSt11_Niter_baseIT_E13iterator_typeES2_(i8* %__it) inlinehint {
entry:
  %__it.addr = alloca i8*, align 4
  store i8* %__it, i8** %__it.addr, align 4
  %0 = load i8** %__it.addr, align 4
  %call = call i8* @_ZNSt10_Iter_baseIPhLb0EE7_S_baseES0_(i8* %0)
  ret i8* %call
}

define linkonce_odr i8* @_ZNSt10_Iter_baseIPhLb0EE7_S_baseES0_(i8* %__it) nounwind align 2 {
entry:
  %__it.addr = alloca i8*, align 4
  store i8* %__it, i8** %__it.addr, align 4
  %0 = load i8** %__it.addr, align 4
  ret i8* %0
}

define linkonce_odr void @_ZN5boost12shared_arrayIhEC2EPh(%"class.boost::shared_array"* %this, i8* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  %p.addr = alloca i8*, align 4
  %agg.tmp = alloca %"struct.boost::checked_array_deleter", align 1
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %px = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 0
  %0 = load i8** %p.addr, align 4
  store i8* %0, i8** %px, align 4
  %pn = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 1
  %1 = load i8** %p.addr, align 4
  call void @_ZN5boost6detail12shared_countC1IPhNS_21checked_array_deleterIhEEEET_T0_(%"class.boost::detail::shared_count"* %pn, i8* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC1IPhNS_21checked_array_deleterIhEEEET_T0_(%"class.boost::detail::shared_count"* %this, i8* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %p.addr = alloca i8*, align 4
  %d = alloca %"struct.boost::checked_array_deleter", align 1
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %0 = load i8** %p.addr, align 4
  call void @_ZN5boost6detail12shared_countC2IPhNS_21checked_array_deleterIhEEEET_T0_(%"class.boost::detail::shared_count"* %this1, i8* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC2IPhNS_21checked_array_deleterIhEEEET_T0_(%"class.boost::detail::shared_count"* %this, i8* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %p.addr = alloca i8*, align 4
  %d = alloca %"struct.boost::checked_array_deleter", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %pi_ = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  store %"class.boost::detail::sp_counted_base"* null, %"class.boost::detail::sp_counted_base"** %pi_, align 4
  %call = invoke noalias i8* @_Znwj(i32 20)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast i8* %call to %"class.boost::detail::sp_counted_impl_pd"*
  %1 = load i8** %p.addr, align 4
  invoke void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEC1ES2_RS4_(%"class.boost::detail::sp_counted_impl_pd"* %0, i8* %1, %"struct.boost::checked_array_deleter"* %d)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %invoke.cont
  %2 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %0 to %"class.boost::detail::sp_counted_base"*
  %pi_4 = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  store %"class.boost::detail::sp_counted_base"* %2, %"class.boost::detail::sp_counted_base"** %pi_4, align 4
  br label %try.cont

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  br label %catch

lpad2:                                            ; preds = %invoke.cont
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  call void @_ZdlPv(i8* %call) nounwind
  br label %catch

catch:                                            ; preds = %lpad2, %lpad
  %exn = load i8** %exn.slot
  %9 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %10 = load i8** %p.addr, align 4
  invoke void @_ZNK5boost21checked_array_deleterIhEclEPh(%"struct.boost::checked_array_deleter"* %d, i8* %10)
          to label %invoke.cont6 unwind label %lpad5

invoke.cont6:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad5

lpad5:                                            ; preds = %invoke.cont6, %catch
  %11 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %12 = extractvalue { i8*, i32 } %11, 0
  store i8* %12, i8** %exn.slot
  %13 = extractvalue { i8*, i32 } %11, 1
  store i32 %13, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont7 unwind label %terminate.lpad

invoke.cont7:                                     ; preds = %lpad5
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont3
  ret void

eh.resume:                                        ; preds = %invoke.cont7
  %exn8 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn8, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9

terminate.lpad:                                   ; preds = %lpad5
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont6
  unreachable
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEC1ES2_RS4_(%"class.boost::detail::sp_counted_impl_pd"* %this, i8* %p, %"struct.boost::checked_array_deleter"* %d) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  %p.addr = alloca i8*, align 4
  %d.addr = alloca %"struct.boost::checked_array_deleter"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  store %"struct.boost::checked_array_deleter"* %d, %"struct.boost::checked_array_deleter"** %d.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %0 = load i8** %p.addr, align 4
  %1 = load %"struct.boost::checked_array_deleter"** %d.addr
  call void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEC2ES2_RS4_(%"class.boost::detail::sp_counted_impl_pd"* %this1, i8* %0, %"struct.boost::checked_array_deleter"* %1)
  ret void
}

define linkonce_odr void @_ZNK5boost21checked_array_deleterIhEclEPh(%"struct.boost::checked_array_deleter"* %this, i8* %x) align 2 {
entry:
  %this.addr = alloca %"struct.boost::checked_array_deleter"*, align 4
  %x.addr = alloca i8*, align 4
  store %"struct.boost::checked_array_deleter"* %this, %"struct.boost::checked_array_deleter"** %this.addr, align 4
  store i8* %x, i8** %x.addr, align 4
  %this1 = load %"struct.boost::checked_array_deleter"** %this.addr
  %0 = load i8** %x.addr, align 4
  call void @_ZN5boost20checked_array_deleteIhEEvPT_(i8* %0)
  ret void
}

define linkonce_odr void @_ZN5boost20checked_array_deleteIhEEvPT_(i8* %x) nounwind inlinehint {
entry:
  %x.addr = alloca i8*, align 4
  store i8* %x, i8** %x.addr, align 4
  %0 = load i8** %x.addr, align 4
  %isnull = icmp eq i8* %0, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  call void @_ZdaPv(i8* %0) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEC2ES2_RS4_(%"class.boost::detail::sp_counted_impl_pd"* %this, i8* %p, %"struct.boost::checked_array_deleter"* %d) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  %p.addr = alloca i8*, align 4
  %d.addr = alloca %"struct.boost::checked_array_deleter"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  store %"struct.boost::checked_array_deleter"* %d, %"struct.boost::checked_array_deleter"** %d.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %0 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to %"class.boost::detail::sp_counted_base"*
  call void @_ZN5boost6detail15sp_counted_baseC2Ev(%"class.boost::detail::sp_counted_base"* %0)
  %1 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to i8***
  store i8** getelementptr inbounds ([7 x i8*]* @_ZTVN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE, i64 0, i64 2), i8*** %1
  %ptr = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 1
  %2 = load i8** %p.addr, align 4
  store i8* %2, i8** %ptr, align 4
  %del = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 2
  %3 = load %"struct.boost::checked_array_deleter"** %d.addr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_baseC2Ev(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to i8***
  store i8** getelementptr inbounds ([7 x i8*]* @_ZTVN5boost6detail15sp_counted_baseE, i64 0, i64 2), i8*** %0
  %use_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 1
  store i32 1, i32* %use_count_, align 4
  %weak_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 2
  store i32 1, i32* %weak_count_, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED1Ev(%"class.boost::detail::sp_counted_impl_pd"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  call void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED2Ev(%"class.boost::detail::sp_counted_impl_pd"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED0Ev(%"class.boost::detail::sp_counted_impl_pd"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  invoke void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED1Ev(%"class.boost::detail::sp_counted_impl_pd"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  %4 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to i8*
  call void @_ZdlPv(i8* %4) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEE7disposeEv(%"class.boost::detail::sp_counted_impl_pd"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %del = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 2
  %ptr = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 1
  %0 = load i8** %ptr, align 4
  call void @_ZNK5boost21checked_array_deleterIhEclEPh(%"struct.boost::checked_array_deleter"* %del, i8* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_base7destroyEv(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %isnull = icmp eq %"class.boost::detail::sp_counted_base"* %this1, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to void (%"class.boost::detail::sp_counted_base"*)***
  %vtable = load void (%"class.boost::detail::sp_counted_base"*)*** %0
  %vfn = getelementptr inbounds void (%"class.boost::detail::sp_counted_base"*)** %vtable, i64 1
  %1 = load void (%"class.boost::detail::sp_counted_base"*)** %vfn
  call void %1(%"class.boost::detail::sp_counted_base"* %this1)
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

define linkonce_odr i8* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEE11get_deleterERKSt9type_info(%"class.boost::detail::sp_counted_impl_pd"* %this, %"class.std::type_info"* %ti) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  %ti.addr = alloca %"class.std::type_info"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  store %"class.std::type_info"* %ti, %"class.std::type_info"** %ti.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %0 = load %"class.std::type_info"** %ti.addr, align 4
  %call = call zeroext i1 @_ZNKSt9type_infoeqERKS_(%"class.std::type_info"* %0, %"class.std::type_info"* bitcast ({ i8*, i8* }* @_ZTIN5boost21checked_array_deleterIhEE to %"class.std::type_info"*))
  br i1 %call, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %del = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 2
  %1 = bitcast %"struct.boost::checked_array_deleter"* %del to i8*
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i8* [ %1, %cond.true ], [ null, %cond.false ]
  ret i8* %cond
}

define linkonce_odr zeroext i1 @_ZNKSt9type_infoeqERKS_(%"class.std::type_info"* %this, %"class.std::type_info"* %__arg) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::type_info"*, align 4
  %__arg.addr = alloca %"class.std::type_info"*, align 4
  store %"class.std::type_info"* %this, %"class.std::type_info"** %this.addr, align 4
  store %"class.std::type_info"* %__arg, %"class.std::type_info"** %__arg.addr, align 4
  %this1 = load %"class.std::type_info"** %this.addr
  %__name = getelementptr inbounds %"class.std::type_info"* %this1, i32 0, i32 1
  %0 = load i8** %__name, align 4
  %1 = load %"class.std::type_info"** %__arg.addr, align 4
  %__name2 = getelementptr inbounds %"class.std::type_info"* %1, i32 0, i32 1
  %2 = load i8** %__name2, align 4
  %cmp = icmp eq i8* %0, %2
  br i1 %cmp, label %lor.end, label %lor.rhs

lor.rhs:                                          ; preds = %entry
  %__name3 = getelementptr inbounds %"class.std::type_info"* %this1, i32 0, i32 1
  %3 = load i8** %__name3, align 4
  %arrayidx = getelementptr inbounds i8* %3, i32 0
  %4 = load i8* %arrayidx, align 1
  %conv = sext i8 %4 to i32
  %cmp4 = icmp ne i32 %conv, 42
  br i1 %cmp4, label %land.rhs, label %land.end

land.rhs:                                         ; preds = %lor.rhs
  %__name5 = getelementptr inbounds %"class.std::type_info"* %this1, i32 0, i32 1
  %5 = load i8** %__name5, align 4
  %6 = load %"class.std::type_info"** %__arg.addr, align 4
  %__name6 = getelementptr inbounds %"class.std::type_info"* %6, i32 0, i32 1
  %7 = load i8** %__name6, align 4
  %call = call i32 @strcmp(i8* %5, i8* %7) nounwind
  %cmp7 = icmp eq i32 %call, 0
  br label %land.end

land.end:                                         ; preds = %land.rhs, %lor.rhs
  %8 = phi i1 [ false, %lor.rhs ], [ %cmp7, %land.rhs ]
  br label %lor.end

lor.end:                                          ; preds = %land.end, %entry
  %9 = phi i1 [ true, %entry ], [ %8, %land.end ]
  ret i1 %9
}

declare i32 @strcmp(i8*, i8*) nounwind

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED2Ev(%"class.boost::detail::sp_counted_impl_pd"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %0 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to %"class.boost::detail::sp_counted_base"*
  call void @_ZN5boost6detail15sp_counted_baseD2Ev(%"class.boost::detail::sp_counted_base"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_baseD2Ev(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_baseD1Ev(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  call void @_ZN5boost6detail15sp_counted_baseD2Ev(%"class.boost::detail::sp_counted_base"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_baseD0Ev(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  invoke void @_ZN5boost6detail15sp_counted_baseD1Ev(%"class.boost::detail::sp_counted_base"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  %4 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to i8*
  call void @_ZdlPv(i8* %4) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14distance_inf_tENS_16bgl_named_paramsIPiNS_17vertex_distance_tENS2_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEENS_15param_not_foundEE3getERKS9_RKSA_(%"struct.boost::bgl_named_params"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params"* %p, %"struct.boost::bgl_named_params"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14distance_inf_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14distance_inf_tENS_16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKS6_RKS7_(%"struct.boost::bgl_named_params.13"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.13"* %p, %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.13"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14distance_inf_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14distance_inf_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

define linkonce_odr void @_ZN5boost18dummy_property_mapC2Ev(%"class.boost::dummy_property_map"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::dummy_property_map"*, align 4
  store %"class.boost::dummy_property_map"* %this, %"class.boost::dummy_property_map"** %this.addr, align 4
  %this1 = load %"class.boost::dummy_property_map"** %this.addr
  %0 = bitcast %"class.boost::dummy_property_map"* %this1 to %"struct.boost::put_get_helper.37"*
  %c = getelementptr inbounds %"class.boost::dummy_property_map"* %this1, i32 0, i32 0
  store i32 0, i32* %c, align 4
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsIPiNS_17vertex_distance_tENS0_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEC1ES1_RKS6_(%"struct.boost::bgl_named_params"* %this, i32* %v, %"struct.boost::bgl_named_params.13"* %b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %v.addr = alloca i32*, align 4
  %b.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  store %"struct.boost::bgl_named_params"* %this, %"struct.boost::bgl_named_params"** %this.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  store %"struct.boost::bgl_named_params.13"* %b, %"struct.boost::bgl_named_params.13"** %b.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params"** %this.addr
  %0 = load i32** %v.addr, align 4
  %1 = load %"struct.boost::bgl_named_params.13"** %b.addr
  call void @_ZN5boost16bgl_named_paramsIPiNS_17vertex_distance_tENS0_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEC2ES1_RKS6_(%"struct.boost::bgl_named_params"* %this1, i32* %0, %"struct.boost::bgl_named_params.13"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsIPiNS_17vertex_distance_tENS0_IPjNS_20vertex_predecessor_tENS_11no_propertyEEEEC2ES1_RKS6_(%"struct.boost::bgl_named_params"* %this, i32* %v, %"struct.boost::bgl_named_params.13"* %b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %v.addr = alloca i32*, align 4
  %b.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  store %"struct.boost::bgl_named_params"* %this, %"struct.boost::bgl_named_params"** %this.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  store %"struct.boost::bgl_named_params.13"* %b, %"struct.boost::bgl_named_params.13"** %b.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params"** %this.addr
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params"* %this1, i32 0, i32 0
  %0 = load i32** %v.addr, align 4
  store i32* %0, i32** %m_value, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %this1, i32 0, i32 1
  %1 = load %"struct.boost::bgl_named_params.13"** %b.addr, align 4
  %2 = bitcast %"struct.boost::bgl_named_params.13"* %m_base to i8*
  %3 = bitcast %"struct.boost::bgl_named_params.13"* %1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 8, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEC1ES1_(%"struct.boost::bgl_named_params.13"* %this, i32* %v) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %v.addr = alloca i32*, align 4
  store %"struct.boost::bgl_named_params.13"* %this, %"struct.boost::bgl_named_params.13"** %this.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params.13"** %this.addr
  %0 = load i32** %v.addr, align 4
  call void @_ZN5boost16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEC2ES1_(%"struct.boost::bgl_named_params.13"* %this1, i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsIPjNS_20vertex_predecessor_tENS_11no_propertyEEC2ES1_(%"struct.boost::bgl_named_params.13"* %this, i32* %v) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params.13"*, align 4
  %v.addr = alloca i32*, align 4
  store %"struct.boost::bgl_named_params.13"* %this, %"struct.boost::bgl_named_params.13"** %this.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params.13"** %this.addr
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %this1, i32 0, i32 0
  %0 = load i32** %v.addr, align 4
  store i32* %0, i32** %m_value, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.13"* %this1, i32 0, i32 1
  ret void
}

define linkonce_odr void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.8"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.8"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.8"* %this, %"class.std::vector.8"** %this.addr, align 4
  %this1 = load %"class.std::vector.8"** %this.addr
  %0 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.9"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load i32** %_M_start, align 4
  %2 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.9"* %2, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  %3 = load i32** %_M_finish, align 4
  %4 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %call = invoke %"class.std::allocator.10"* @_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.9"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZSt8_DestroyIPiiEvT_S1_RSaIT0_E(i32* %1, i32* %3, %"class.std::allocator.10"* %call)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont
  %5 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  call void @_ZNSt12_Vector_baseIiSaIiEED2Ev(%"struct.std::_Vector_base.9"* %5)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  %9 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  invoke void @_ZNSt12_Vector_baseIiSaIiEED2Ev(%"struct.std::_Vector_base.9"* %9)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZSt8_DestroyIPiiEvT_S1_RSaIT0_E(i32* %__first, i32* %__last, %"class.std::allocator.10"*) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %.addr = alloca %"class.std::allocator.10"*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store %"class.std::allocator.10"* %0, %"class.std::allocator.10"** %.addr, align 4
  %1 = load i32** %__first.addr, align 4
  %2 = load i32** %__last.addr, align 4
  call void @_ZSt8_DestroyIPiEvT_S1_(i32* %1, i32* %2)
  ret void
}

define linkonce_odr %"class.std::allocator.10"* @_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.9"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.9"*, align 4
  store %"struct.std::_Vector_base.9"* %this, %"struct.std::_Vector_base.9"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.9"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl to %"class.std::allocator.10"*
  ret %"class.std::allocator.10"* %0
}

define linkonce_odr void @_ZNSt12_Vector_baseIiSaIiEED2Ev(%"struct.std::_Vector_base.9"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.9"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base.9"* %this, %"struct.std::_Vector_base.9"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.9"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %0 = load i32** %_M_start, align 4
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %1 = load i32** %_M_end_of_storage, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load i32** %_M_start4, align 4
  %sub.ptr.lhs.cast = ptrtoint i32* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint i32* %2 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  invoke void @_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPij(%"struct.std::_Vector_base.9"* %this1, i32* %0, i32 %sub.ptr.div)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD1Ev(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl5) nounwind
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD1Ev(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl6) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7
}

define linkonce_odr void @_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPij(%"struct.std::_Vector_base.9"* %this, i32* %__p, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.9"*, align 4
  %__p.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.9"* %this, %"struct.std::_Vector_base.9"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.9"** %this.addr
  %0 = load i32** %__p.addr, align 4
  %tobool = icmp ne i32* %0, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.11"*
  %2 = load i32** %__p.addr, align 4
  %3 = load i32* %__n.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPij(%"class.__gnu_cxx::new_allocator.11"* %1, i32* %2, i32 %3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD1Ev(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD2Ev(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD2Ev(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this1 to %"class.std::allocator.10"*
  call void @_ZNSaIiED2Ev(%"class.std::allocator.10"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIiED2Ev(%"class.std::allocator.10"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.10"*, align 4
  store %"class.std::allocator.10"* %this, %"class.std::allocator.10"** %this.addr, align 4
  %this1 = load %"class.std::allocator.10"** %this.addr
  %0 = bitcast %"class.std::allocator.10"* %this1 to %"class.__gnu_cxx::new_allocator.11"*
  call void @_ZN9__gnu_cxx13new_allocatorIiED2Ev(%"class.__gnu_cxx::new_allocator.11"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIiED2Ev(%"class.__gnu_cxx::new_allocator.11"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.11"*, align 4
  store %"class.__gnu_cxx::new_allocator.11"* %this, %"class.__gnu_cxx::new_allocator.11"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.11"** %this.addr
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPij(%"class.__gnu_cxx::new_allocator.11"* %this, i32* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.11"*, align 4
  %__p.addr = alloca i32*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator.11"* %this, %"class.__gnu_cxx::new_allocator.11"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.11"** %this.addr
  %1 = load i32** %__p.addr, align 4
  %2 = bitcast i32* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIPiEvT_S1_(i32* %__first, i32* %__last) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32** %__last.addr, align 4
  call void @_ZNSt12_Destroy_auxILb1EE9__destroyIPiEEvT_S3_(i32* %0, i32* %1)
  ret void
}

define linkonce_odr void @_ZNSt12_Destroy_auxILb1EE9__destroyIPiEEvT_S3_(i32*, i32*) nounwind align 2 {
entry:
  %.addr = alloca i32*, align 4
  %.addr1 = alloca i32*, align 4
  store i32* %0, i32** %.addr, align 4
  store i32* %1, i32** %.addr1, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorIiSaIiEEC2EjRKiRKS0_(%"class.std::vector.8"* %this, i32 %__n, i32* %__value, %"class.std::allocator.10"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.8"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  %__a.addr = alloca %"class.std::allocator.10"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.8"* %this, %"class.std::vector.8"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  store %"class.std::allocator.10"* %__a, %"class.std::allocator.10"** %__a.addr, align 4
  %this1 = load %"class.std::vector.8"** %this.addr
  %0 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %1 = load i32* %__n.addr, align 4
  %2 = load %"class.std::allocator.10"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIiSaIiEEC2EjRKS0_(%"struct.std::_Vector_base.9"* %0, i32 %1, %"class.std::allocator.10"* %2)
  %3 = load i32* %__n.addr, align 4
  %4 = load i32** %__value.addr, align 4
  invoke void @_ZNSt6vectorIiSaIiEE18_M_fill_initializeEjRKi(%"class.std::vector.8"* %this1, i32 %3, i32* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  %8 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  invoke void @_ZNSt12_Vector_baseIiSaIiEED2Ev(%"struct.std::_Vector_base.9"* %8)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt12_Vector_baseIiSaIiEEC2EjRKS0_(%"struct.std::_Vector_base.9"* %this, i32 %__n, %"class.std::allocator.10"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.9"*, align 4
  %__n.addr = alloca i32, align 4
  %__a.addr = alloca %"class.std::allocator.10"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base.9"* %this, %"struct.std::_Vector_base.9"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"class.std::allocator.10"* %__a, %"class.std::allocator.10"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base.9"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %0 = load %"class.std::allocator.10"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl, %"class.std::allocator.10"* %0)
  %1 = load i32* %__n.addr, align 4
  %call = invoke i32* @_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEj(%"struct.std::_Vector_base.9"* %this1, i32 %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  store i32* %call, i32** %_M_start, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load i32** %_M_start4, align 4
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl5, i32 0, i32 1
  store i32* %2, i32** %_M_finish, align 4
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %_M_start7 = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl6, i32 0, i32 0
  %3 = load i32** %_M_start7, align 4
  %4 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds i32* %3, i32 %4
  %_M_impl8 = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl8, i32 0, i32 2
  store i32* %add.ptr, i32** %_M_end_of_storage, align 4
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  call void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD1Ev(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9
}

define linkonce_odr void @_ZNSt6vectorIiSaIiEE18_M_fill_initializeEjRKi(%"class.std::vector.8"* %this, i32 %__n, i32* %__value) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.8"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  store %"class.std::vector.8"* %this, %"class.std::vector.8"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %this1 = load %"class.std::vector.8"** %this.addr
  %0 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.9"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load i32** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load i32** %__value.addr, align 4
  %4 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %call = call %"class.std::allocator.10"* @_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.9"* %4)
  call void @_ZSt24__uninitialized_fill_n_aIPijiiEvT_T0_RKT1_RSaIT2_E(i32* %1, i32 %2, i32* %3, %"class.std::allocator.10"* %call)
  %5 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.9"* %5, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %6 = load i32** %_M_end_of_storage, align 4
  %7 = bitcast %"class.std::vector.8"* %this1 to %"struct.std::_Vector_base.9"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.9"* %7, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl3, i32 0, i32 1
  store i32* %6, i32** %_M_finish, align 4
  ret void
}

define linkonce_odr void @_ZSt24__uninitialized_fill_n_aIPijiiEvT_T0_RKT1_RSaIT2_E(i32* %__first, i32 %__n, i32* %__x, %"class.std::allocator.10"*) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca i32*, align 4
  %.addr = alloca %"class.std::allocator.10"*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  store %"class.std::allocator.10"* %0, %"class.std::allocator.10"** %.addr, align 4
  %1 = load i32** %__first.addr, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load i32** %__x.addr, align 4
  call void @_ZSt20uninitialized_fill_nIPijiEvT_T0_RKT1_(i32* %1, i32 %2, i32* %3)
  ret void
}

define linkonce_odr void @_ZSt20uninitialized_fill_nIPijiEvT_T0_RKT1_(i32* %__first, i32 %__n, i32* %__x) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32* %__n.addr, align 4
  %2 = load i32** %__x.addr, align 4
  call void @_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIPijiEEvT_T0_RKT1_(i32* %0, i32 %1, i32* %2)
  ret void
}

define linkonce_odr void @_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIPijiEEvT_T0_RKT1_(i32* %__first, i32 %__n, i32* %__x) align 2 {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32* %__n.addr, align 4
  %2 = load i32** %__x.addr, align 4
  %call = call i32* @_ZSt6fill_nIPijiET_S1_T0_RKT1_(i32* %0, i32 %1, i32* %2)
  ret void
}

define linkonce_odr i32* @_ZSt6fill_nIPijiET_S1_T0_RKT1_(i32* %__first, i32 %__n, i32* %__value) {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %call = call i32* @_ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %0)
  %1 = load i32* %__n.addr, align 4
  %2 = load i32** %__value.addr, align 4
  %call1 = call i32* @_ZSt10__fill_n_aIPijiEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT1_EE7__valueET_E6__typeES4_T0_RKS3_(i32* %call, i32 %1, i32* %2)
  ret i32* %call1
}

define linkonce_odr i32* @_ZSt10__fill_n_aIPijiEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT1_EE7__valueET_E6__typeES4_T0_RKS3_(i32* %__first, i32 %__n, i32* %__value) nounwind inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  %__tmp = alloca i32, align 4
  %__niter = alloca i32, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__value.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %__tmp, align 4
  %2 = load i32* %__n.addr, align 4
  store i32 %2, i32* %__niter, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %3 = load i32* %__niter, align 4
  %cmp = icmp ugt i32 %3, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %4 = load i32* %__tmp, align 4
  %5 = load i32** %__first.addr, align 4
  store i32 %4, i32* %5, align 4
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %6 = load i32* %__niter, align 4
  %dec = add i32 %6, -1
  store i32 %dec, i32* %__niter, align 4
  %7 = load i32** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds i32* %7, i32 1
  store i32* %incdec.ptr, i32** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %8 = load i32** %__first.addr, align 4
  ret i32* %8
}

define linkonce_odr i32* @_ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %__it) inlinehint {
entry:
  %__it.addr = alloca i32*, align 4
  store i32* %__it, i32** %__it.addr, align 4
  %0 = load i32** %__it.addr, align 4
  %call = call i32* @_ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_(i32* %0)
  ret i32* %call
}

define linkonce_odr i32* @_ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_(i32* %__it) nounwind align 2 {
entry:
  %__it.addr = alloca i32*, align 4
  store i32* %__it, i32** %__it.addr, align 4
  %0 = load i32** %__it.addr, align 4
  ret i32* %0
}

define linkonce_odr void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this, %"class.std::allocator.10"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.10"*, align 4
  store %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.10"* %__a, %"class.std::allocator.10"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"** %this.addr
  %0 = load %"class.std::allocator.10"** %__a.addr
  call void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this1, %"class.std::allocator.10"* %0)
  ret void
}

define linkonce_odr i32* @_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEj(%"struct.std::_Vector_base.9"* %this, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.9"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.9"* %this, %"struct.std::_Vector_base.9"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.9"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ne i32 %0, 0
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.9"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.11"*
  %2 = load i32* %__n.addr, align 4
  %call = call i32* @_ZN9__gnu_cxx13new_allocatorIiE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.11"* %1, i32 %2, i8* null)
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32* [ %call, %cond.true ], [ null, %cond.false ]
  ret i32* %cond
}

define linkonce_odr i32* @_ZN9__gnu_cxx13new_allocatorIiE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.11"* %this, i32 %__n, i8*) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.11"*, align 4
  %__n.addr = alloca i32, align 4
  %.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::new_allocator.11"* %this, %"class.__gnu_cxx::new_allocator.11"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %0, i8** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.11"** %this.addr
  %1 = load i32* %__n.addr, align 4
  %call = call i32 @_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv(%"class.__gnu_cxx::new_allocator.11"* %this1) nounwind
  %cmp = icmp ugt i32 %1, %call
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt17__throw_bad_allocv() noreturn
  unreachable

if.end:                                           ; preds = %entry
  %2 = load i32* %__n.addr, align 4
  %mul = mul i32 %2, 4
  %call2 = call noalias i8* @_Znwj(i32 %mul)
  %3 = bitcast i8* %call2 to i32*
  ret i32* %3
}

define linkonce_odr i32 @_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv(%"class.__gnu_cxx::new_allocator.11"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.11"*, align 4
  store %"class.__gnu_cxx::new_allocator.11"* %this, %"class.__gnu_cxx::new_allocator.11"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.11"** %this.addr
  ret i32 1073741823
}

define linkonce_odr void @_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_(%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this, %"class.std::allocator.10"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.10"*, align 4
  store %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.10"* %__a, %"class.std::allocator.10"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this1 to %"class.std::allocator.10"*
  %1 = load %"class.std::allocator.10"** %__a.addr, align 4
  call void @_ZNSaIiEC2ERKS_(%"class.std::allocator.10"* %0, %"class.std::allocator.10"* %1) nounwind
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this1, i32 0, i32 0
  store i32* null, i32** %_M_start, align 4
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this1, i32 0, i32 1
  store i32* null, i32** %_M_finish, align 4
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %this1, i32 0, i32 2
  store i32* null, i32** %_M_end_of_storage, align 4
  ret void
}

define linkonce_odr void @_ZNSaIiEC2ERKS_(%"class.std::allocator.10"* %this, %"class.std::allocator.10"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.10"*, align 4
  %__a.addr = alloca %"class.std::allocator.10"*, align 4
  store %"class.std::allocator.10"* %this, %"class.std::allocator.10"** %this.addr, align 4
  store %"class.std::allocator.10"* %__a, %"class.std::allocator.10"** %__a.addr, align 4
  %this1 = load %"class.std::allocator.10"** %this.addr
  %0 = bitcast %"class.std::allocator.10"* %this1 to %"class.__gnu_cxx::new_allocator.11"*
  %1 = load %"class.std::allocator.10"** %__a.addr, align 4
  %2 = bitcast %"class.std::allocator.10"* %1 to %"class.__gnu_cxx::new_allocator.11"*
  call void @_ZN9__gnu_cxx13new_allocatorIiEC2ERKS1_(%"class.__gnu_cxx::new_allocator.11"* %0, %"class.__gnu_cxx::new_allocator.11"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIiEC2ERKS1_(%"class.__gnu_cxx::new_allocator.11"* %this, %"class.__gnu_cxx::new_allocator.11"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.11"*, align 4
  %.addr = alloca %"class.__gnu_cxx::new_allocator.11"*, align 4
  store %"class.__gnu_cxx::new_allocator.11"* %this, %"class.__gnu_cxx::new_allocator.11"** %this.addr, align 4
  store %"class.__gnu_cxx::new_allocator.11"* %0, %"class.__gnu_cxx::new_allocator.11"** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.11"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSaIiEC2Ev(%"class.std::allocator.10"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.10"*, align 4
  store %"class.std::allocator.10"* %this, %"class.std::allocator.10"** %this.addr, align 4
  %this1 = load %"class.std::allocator.10"** %this.addr
  %0 = bitcast %"class.std::allocator.10"* %this1 to %"class.__gnu_cxx::new_allocator.11"*
  call void @_ZN9__gnu_cxx13new_allocatorIiEC2Ev(%"class.__gnu_cxx::new_allocator.11"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIiEC2Ev(%"class.__gnu_cxx::new_allocator.11"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.11"*, align 4
  store %"class.__gnu_cxx::new_allocator.11"* %this, %"class.__gnu_cxx::new_allocator.11"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.11"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEED2Ev(%"class.std::vector.3"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load i32** %_M_start, align 4
  %2 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %2, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  %3 = load i32** %_M_finish, align 4
  %4 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call = invoke %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZSt8_DestroyIPjjEvT_S1_RSaIT0_E(i32* %1, i32* %3, %"class.std::allocator.5"* %call)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont
  %5 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  call void @_ZNSt12_Vector_baseIjSaIjEED2Ev(%"struct.std::_Vector_base.4"* %5)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  %9 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  invoke void @_ZNSt12_Vector_baseIjSaIjEED2Ev(%"struct.std::_Vector_base.4"* %9)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEEC2EjRKjRKS0_(%"class.std::vector.3"* %this, i32 %__n, i32* %__value, %"class.std::allocator.5"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %1 = load i32* %__n.addr, align 4
  %2 = load %"class.std::allocator.5"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIjSaIjEEC2EjRKS0_(%"struct.std::_Vector_base.4"* %0, i32 %1, %"class.std::allocator.5"* %2)
  %3 = load i32* %__n.addr, align 4
  %4 = load i32** %__value.addr, align 4
  invoke void @_ZNSt6vectorIjSaIjEE18_M_fill_initializeEjRKj(%"class.std::vector.3"* %this1, i32 %3, i32* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  %8 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  invoke void @_ZNSt12_Vector_baseIjSaIjEED2Ev(%"struct.std::_Vector_base.4"* %8)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEE18_M_fill_initializeEjRKj(%"class.std::vector.3"* %this, i32 %__n, i32* %__value) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load i32** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load i32** %__value.addr, align 4
  %4 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call = call %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %4)
  call void @_ZSt24__uninitialized_fill_n_aIPjjjjEvT_T0_RKT1_RSaIT2_E(i32* %1, i32 %2, i32* %3, %"class.std::allocator.5"* %call)
  %5 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %5, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %6 = load i32** %_M_end_of_storage, align 4
  %7 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.4"* %7, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl3, i32 0, i32 1
  store i32* %6, i32** %_M_finish, align 4
  ret void
}

define linkonce_odr void @_ZSt24__uninitialized_fill_n_aIPjjjjEvT_T0_RKT1_RSaIT2_E(i32* %__first, i32 %__n, i32* %__x, %"class.std::allocator.5"*) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca i32*, align 4
  %.addr = alloca %"class.std::allocator.5"*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  store %"class.std::allocator.5"* %0, %"class.std::allocator.5"** %.addr, align 4
  %1 = load i32** %__first.addr, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load i32** %__x.addr, align 4
  call void @_ZSt20uninitialized_fill_nIPjjjEvT_T0_RKT1_(i32* %1, i32 %2, i32* %3)
  ret void
}

define linkonce_odr void @_ZSt20uninitialized_fill_nIPjjjEvT_T0_RKT1_(i32* %__first, i32 %__n, i32* %__x) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32* %__n.addr, align 4
  %2 = load i32** %__x.addr, align 4
  call void @_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIPjjjEEvT_T0_RKT1_(i32* %0, i32 %1, i32* %2)
  ret void
}

define linkonce_odr void @_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIPjjjEEvT_T0_RKT1_(i32* %__first, i32 %__n, i32* %__x) align 2 {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32* %__n.addr, align 4
  %2 = load i32** %__x.addr, align 4
  %call = call i32* @_ZSt6fill_nIPjjjET_S1_T0_RKT1_(i32* %0, i32 %1, i32* %2)
  ret void
}

define linkonce_odr i32* @_ZSt6fill_nIPjjjET_S1_T0_RKT1_(i32* %__first, i32 %__n, i32* %__value) {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %call = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %0)
  %1 = load i32* %__n.addr, align 4
  %2 = load i32** %__value.addr, align 4
  %call1 = call i32* @_ZSt10__fill_n_aIPjjjEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT1_EE7__valueET_E6__typeES4_T0_RKS3_(i32* %call, i32 %1, i32* %2)
  ret i32* %call1
}

define linkonce_odr i32* @_ZSt10__fill_n_aIPjjjEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT1_EE7__valueET_E6__typeES4_T0_RKS3_(i32* %__first, i32 %__n, i32* %__value) nounwind inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  %__tmp = alloca i32, align 4
  %__niter = alloca i32, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__value.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %__tmp, align 4
  %2 = load i32* %__n.addr, align 4
  store i32 %2, i32* %__niter, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %3 = load i32* %__niter, align 4
  %cmp = icmp ugt i32 %3, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %4 = load i32* %__tmp, align 4
  %5 = load i32** %__first.addr, align 4
  store i32 %4, i32* %5, align 4
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %6 = load i32* %__niter, align 4
  %dec = add i32 %6, -1
  store i32 %dec, i32* %__niter, align 4
  %7 = load i32** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds i32* %7, i32 1
  store i32* %incdec.ptr, i32** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %8 = load i32** %__first.addr, align 4
  ret i32* %8
}

define linkonce_odr i32 @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE4sizeEv(%"class.boost::iterator_range"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_range"*, align 4
  store %"class.boost::iterator_range"* %this, %"class.boost::iterator_range"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_range"** %this.addr
  %m_End = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 1
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %m_End to %"class.boost::iterator_facade"*
  %m_Begin = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 0
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %m_Begin to %"class.boost::iterator_facade"*
  %call = call i32 @_ZN5boostmiINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_22choose_difference_typeES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %0, %"class.boost::iterator_facade"* %1)
  ret i32 %call
}

define linkonce_odr i32 @_ZN5boostmiINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_22choose_difference_typeES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"* %rhs) inlinehint {
entry:
  %lhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %rhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_.30", align 1
  %ref.tmp = alloca %"struct.boost::is_convertible.32", align 1
  store %"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"** %lhs.addr, align 4
  store %"class.boost::iterator_facade"* %rhs, %"class.boost::iterator_facade"** %rhs.addr, align 4
  %0 = load %"class.boost::iterator_facade"** %lhs.addr, align 4
  %1 = bitcast %"class.boost::iterator_facade"* %0 to %"class.boost::range_detail::integer_iterator"*
  %2 = load %"class.boost::iterator_facade"** %rhs.addr, align 4
  %3 = bitcast %"class.boost::iterator_facade"* %2 to %"class.boost::range_detail::integer_iterator"*
  %4 = bitcast %"struct.boost::is_convertible.32"* %ref.tmp to %"struct.mpl_::bool_.30"*
  %call = call i32 @_ZN5boost20iterator_core_access13distance_fromINS_12range_detail16integer_iteratorIjEES4_EENT_15difference_typeERKS5_RKT0_N4mpl_5bool_ILb1EEE(%"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %3)
  ret i32 %call
}

define linkonce_odr i32 @_ZN5boost20iterator_core_access13distance_fromINS_12range_detail16integer_iteratorIjEES4_EENT_15difference_typeERKS5_RKT0_N4mpl_5bool_ILb1EEE(%"class.boost::range_detail::integer_iterator"* %f1, %"class.boost::range_detail::integer_iterator"* %f2) align 2 {
entry:
  %f1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %f2.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %0 = alloca %"struct.mpl_::bool_.30", align 1
  store %"class.boost::range_detail::integer_iterator"* %f1, %"class.boost::range_detail::integer_iterator"** %f1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %f2, %"class.boost::range_detail::integer_iterator"** %f2.addr, align 4
  %1 = load %"class.boost::range_detail::integer_iterator"** %f1.addr, align 4
  %2 = load %"class.boost::range_detail::integer_iterator"** %f2.addr, align 4
  %call = call i32 @_ZNK5boost12range_detail16integer_iteratorIjE11distance_toERKS2_(%"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %2)
  %sub = sub nsw i32 0, %call
  ret i32 %sub
}

define linkonce_odr i32 @_ZNK5boost12range_detail16integer_iteratorIjE11distance_toERKS2_(%"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"* %other) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %other.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %other, %"class.boost::range_detail::integer_iterator"** %other.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %0 = load %"class.boost::range_detail::integer_iterator"** %other.addr, align 4
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %0, i32 0, i32 0
  %1 = load i32* %m_value, align 4
  %m_value2 = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %2 = load i32* %m_value2, align 4
  %sub = sub i32 %1, %2
  ret i32 %sub
}

define linkonce_odr void @_ZN5boost6detail12get_dispatchINS0_12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EES9_EENS_12property_mapINT_10graph_typeET1_E4typeERNS_15adj_list_helperISH_T0_EESJ_NS_17edge_property_tagE(%"struct.boost::adj_list_edge_property_map"* noalias sret %agg.result, %"struct.boost::adj_list_helper"*, i32 %p) inlinehint {
entry:
  %.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %p.addr = alloca i32, align 4
  %1 = alloca %"struct.boost::edge_property_tag", align 1
  store %"struct.boost::adj_list_helper"* %0, %"struct.boost::adj_list_helper"** %.addr, align 4
  store i32 %p, i32* %p.addr, align 4
  %2 = load i32* %p.addr, align 4
  call void @_ZN5boost26adj_list_edge_property_mapINS_12directed_tagEiRijNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES4_EC1ES4_(%"struct.boost::adj_list_edge_property_map"* %agg.result, i32 %2)
  ret void
}

define linkonce_odr void @_ZN5boost26adj_list_edge_property_mapINS_12directed_tagEiRijNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES4_EC1ES4_(%"struct.boost::adj_list_edge_property_map"* %this, i32 %tag) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::adj_list_edge_property_map"*, align 4
  %tag.addr = alloca i32, align 4
  store %"struct.boost::adj_list_edge_property_map"* %this, %"struct.boost::adj_list_edge_property_map"** %this.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %this1 = load %"struct.boost::adj_list_edge_property_map"** %this.addr
  %0 = load i32* %tag.addr, align 4
  call void @_ZN5boost26adj_list_edge_property_mapINS_12directed_tagEiRijNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES4_EC2ES4_(%"struct.boost::adj_list_edge_property_map"* %this1, i32 %0)
  ret void
}

define linkonce_odr void @_ZN5boost26adj_list_edge_property_mapINS_12directed_tagEiRijNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEES4_EC2ES4_(%"struct.boost::adj_list_edge_property_map"* %this, i32 %tag) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::adj_list_edge_property_map"*, align 4
  %tag.addr = alloca i32, align 4
  store %"struct.boost::adj_list_edge_property_map"* %this, %"struct.boost::adj_list_edge_property_map"** %this.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %this1 = load %"struct.boost::adj_list_edge_property_map"** %this.addr
  %0 = bitcast %"struct.boost::adj_list_edge_property_map"* %this1 to %"struct.boost::put_get_helper"*
  %tag2 = getelementptr inbounds %"struct.boost::adj_list_edge_property_map"* %this1, i32 0, i32 0
  %1 = load i32* %tag.addr, align 4
  store i32 %1, i32* %tag2, align 4
  ret void
}

define linkonce_odr void @_ZN5boost14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS4_EES4_S1_EC2IPSt4pairIiiEPiEET_SE_T0_jjRKS4_(%"class.boost::adjacency_list"* %this, %"struct.std::pair"* %first, %"struct.std::pair"* %last, i32* %ep_iter, i32 %n, i32, %"struct.boost::no_property"* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::adjacency_list"*, align 4
  %first.addr = alloca %"struct.std::pair"*, align 4
  %last.addr = alloca %"struct.std::pair"*, align 4
  %ep_iter.addr = alloca i32*, align 4
  %n.addr = alloca i32, align 4
  %.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::adjacency_list"* %this, %"class.boost::adjacency_list"** %this.addr, align 4
  store %"struct.std::pair"* %first, %"struct.std::pair"** %first.addr, align 4
  store %"struct.std::pair"* %last, %"struct.std::pair"** %last.addr, align 4
  store i32* %ep_iter, i32** %ep_iter.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store i32 %0, i32* %.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::adjacency_list"** %this.addr
  %1 = bitcast %"class.boost::adjacency_list"* %this1 to %"class.boost::vec_adj_list_impl"*
  %2 = load i32* %n.addr, align 4
  %3 = load %"struct.std::pair"** %first.addr, align 4
  %4 = load %"struct.std::pair"** %last.addr, align 4
  %5 = load i32** %ep_iter.addr, align 4
  call void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEEC2IPSt4pairIiiEPiEEjT_SM_T0_(%"class.boost::vec_adj_list_impl"* %1, i32 %2, %"struct.std::pair"* %3, %"struct.std::pair"* %4, i32* %5)
  %6 = bitcast %"class.boost::adjacency_list"* %this1 to %"struct.boost::graph::maybe_named_graph"*
  %m_property = getelementptr inbounds %"class.boost::adjacency_list"* %this1, i32 0, i32 1
  %call = invoke noalias i8* @_Znwj(i32 1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %7 = bitcast i8* %call to %"struct.boost::no_property"*
  %8 = load %"struct.boost::no_property"** %p.addr, align 4
  invoke void @_ZN5boost10scoped_ptrINS_11no_propertyEEC1EPS1_(%"class.boost::scoped_ptr"* %m_property, %"struct.boost::no_property"* %7)
          to label %invoke.cont2 unwind label %lpad

invoke.cont2:                                     ; preds = %invoke.cont
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %10 = extractvalue { i8*, i32 } %9, 0
  store i8* %10, i8** %exn.slot
  %11 = extractvalue { i8*, i32 } %9, 1
  store i32 %11, i32* %ehselector.slot
  %12 = bitcast %"class.boost::adjacency_list"* %this1 to %"class.boost::vec_adj_list_impl"*
  invoke void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEED2Ev(%"class.boost::vec_adj_list_impl"* %12)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %13 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEEC2IPSt4pairIiiEPiEEjT_SM_T0_(%"class.boost::vec_adj_list_impl"* %this, i32 %num_vertices, %"struct.std::pair"* %first, %"struct.std::pair"* %last, i32* %ep_iter) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %num_vertices.addr = alloca i32, align 4
  %first.addr = alloca %"struct.std::pair"*, align 4
  %last.addr = alloca %"struct.std::pair"*, align 4
  %ep_iter.addr = alloca i32*, align 4
  %ref.tmp = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp2 = alloca %"class.std::allocator.0", align 1
  %ref.tmp8 = alloca %"struct.boost::property", align 4
  %tmp = alloca %"struct.std::pair.64", align 4
  store %"class.boost::vec_adj_list_impl"* %this, %"class.boost::vec_adj_list_impl"** %this.addr, align 4
  store i32 %num_vertices, i32* %num_vertices.addr, align 4
  store %"struct.std::pair"* %first, %"struct.std::pair"** %first.addr, align 4
  store %"struct.std::pair"* %last, %"struct.std::pair"** %last.addr, align 4
  store i32* %ep_iter, i32** %ep_iter.addr, align 4
  %this1 = load %"class.boost::vec_adj_list_impl"** %this.addr
  %0 = bitcast %"class.boost::vec_adj_list_impl"* %this1 to %"struct.boost::adj_list_helper"*
  %m_edges = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 0
  call void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EEC1Ev(%"class.std::list"* %m_edges)
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 1
  %1 = load i32* %num_vertices.addr, align 4
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %ref.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEEC1Ev(%"class.std::allocator.0"* %ref.tmp2) nounwind
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEC1EjRKSE_RKSF_(%"class.std::vector"* %m_vertices, i32 %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %ref.tmp, %"class.std::allocator.0"* %ref.tmp2)
          to label %invoke.cont4 unwind label %lpad3

invoke.cont4:                                     ; preds = %invoke.cont
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEED1Ev(%"class.std::allocator.0"* %ref.tmp2) nounwind
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %ref.tmp)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont4
  br label %while.cond

while.cond:                                       ; preds = %invoke.cont11, %invoke.cont5
  %2 = load %"struct.std::pair"** %first.addr, align 4
  %3 = load %"struct.std::pair"** %last.addr, align 4
  %cmp = icmp ne %"struct.std::pair"* %2, %3
  br i1 %cmp, label %while.body, label %while.end

while.body:                                       ; preds = %while.cond
  %4 = load %"struct.std::pair"** %first.addr, align 4
  %first7 = getelementptr inbounds %"struct.std::pair"* %4, i32 0, i32 0
  %5 = load i32* %first7, align 4
  %6 = load %"struct.std::pair"** %first.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair"* %6, i32 0, i32 1
  %7 = load i32* %second, align 4
  %8 = load i32** %ep_iter.addr, align 4
  invoke void @_ZN5boost8propertyINS_13edge_weight_tEiNS_11no_propertyEEC1ERKi(%"struct.boost::property"* %ref.tmp8, i32* %8)
          to label %invoke.cont10 unwind label %lpad9

invoke.cont10:                                    ; preds = %while.body
  %9 = bitcast %"class.boost::vec_adj_list_impl"* %this1 to %"class.boost::adjacency_list"*
  %10 = bitcast %"class.boost::adjacency_list"* %9 to %"class.boost::vec_adj_list_impl"*
  invoke void @_ZN5boost8add_edgeINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEEESt4pairINT0_15edge_descriptorEbENSH_17vertex_descriptorESK_RKNSH_18edge_property_typeERNS_17vec_adj_list_implIT_SH_T1_EE(%"struct.std::pair.64"* sret %tmp, i32 %5, i32 %7, %"struct.boost::property"* %ref.tmp8, %"class.boost::vec_adj_list_impl"* %10)
          to label %invoke.cont11 unwind label %lpad9

invoke.cont11:                                    ; preds = %invoke.cont10
  %11 = load %"struct.std::pair"** %first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.std::pair"* %11, i32 1
  store %"struct.std::pair"* %incdec.ptr, %"struct.std::pair"** %first.addr, align 4
  %12 = load i32** %ep_iter.addr, align 4
  %incdec.ptr12 = getelementptr inbounds i32* %12, i32 1
  store i32* %incdec.ptr12, i32** %ep_iter.addr, align 4
  br label %while.cond

lpad:                                             ; preds = %invoke.cont4, %entry
  %13 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %14 = extractvalue { i8*, i32 } %13, 0
  store i8* %14, i8** %exn.slot
  %15 = extractvalue { i8*, i32 } %13, 1
  store i32 %15, i32* %ehselector.slot
  br label %ehcleanup

lpad3:                                            ; preds = %invoke.cont
  %16 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %17 = extractvalue { i8*, i32 } %16, 0
  store i8* %17, i8** %exn.slot
  %18 = extractvalue { i8*, i32 } %16, 1
  store i32 %18, i32* %ehselector.slot
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEED1Ev(%"class.std::allocator.0"* %ref.tmp2) nounwind
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %ref.tmp)
          to label %invoke.cont6 unwind label %terminate.lpad

invoke.cont6:                                     ; preds = %lpad3
  br label %ehcleanup

lpad9:                                            ; preds = %invoke.cont10, %while.body
  %19 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %20 = extractvalue { i8*, i32 } %19, 0
  store i8* %20, i8** %exn.slot
  %21 = extractvalue { i8*, i32 } %19, 1
  store i32 %21, i32* %ehselector.slot
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EED1Ev(%"class.std::vector"* %m_vertices)
          to label %invoke.cont13 unwind label %terminate.lpad

while.end:                                        ; preds = %while.cond
  ret void

invoke.cont13:                                    ; preds = %lpad9
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont13, %invoke.cont6, %lpad
  invoke void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EED1Ev(%"class.std::list"* %m_edges)
          to label %invoke.cont14 unwind label %terminate.lpad

invoke.cont14:                                    ; preds = %ehcleanup
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont14
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val15 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val15

terminate.lpad:                                   ; preds = %ehcleanup, %lpad9, %lpad3
  %22 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost10scoped_ptrINS_11no_propertyEEC1EPS1_(%"class.boost::scoped_ptr"* %this, %"struct.boost::no_property"* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_ptr"*, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.boost::scoped_ptr"* %this, %"class.boost::scoped_ptr"** %this.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::scoped_ptr"** %this.addr
  %0 = load %"struct.boost::no_property"** %p.addr, align 4
  call void @_ZN5boost10scoped_ptrINS_11no_propertyEEC2EPS1_(%"class.boost::scoped_ptr"* %this1, %"struct.boost::no_property"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEED2Ev(%"class.boost::vec_adj_list_impl"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::vec_adj_list_impl"* %this, %"class.boost::vec_adj_list_impl"** %this.addr, align 4
  %this1 = load %"class.boost::vec_adj_list_impl"** %this.addr
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 1
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EED1Ev(%"class.std::vector"* %m_vertices)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %m_edges = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 0
  call void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EED1Ev(%"class.std::list"* %m_edges)
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  %m_edges2 = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 0
  invoke void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EED1Ev(%"class.std::list"* %m_edges2)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EED1Ev(%"class.std::vector"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EED2Ev(%"class.std::vector"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EED1Ev(%"class.std::list"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.std::list"*, align 4
  store %"class.std::list"* %this, %"class.std::list"** %this.addr, align 4
  %this1 = load %"class.std::list"** %this.addr
  call void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EED2Ev(%"class.std::list"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EED2Ev(%"class.std::list"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.std::list"*, align 4
  store %"class.std::list"* %this, %"class.std::list"** %this.addr, align 4
  %this1 = load %"class.std::list"** %this.addr
  %0 = bitcast %"class.std::list"* %this1 to %"class.std::_List_base"*
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EED2Ev(%"class.std::_List_base"* %0)
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EED2Ev(%"class.std::_List_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  invoke void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE8_M_clearEv(%"class.std::_List_base"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implD1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl) nounwind
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implD1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl2) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE8_M_clearEv(%"class.std::_List_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  %__cur = alloca %"struct.std::_List_node.56"*, align 4
  %__tmp = alloca %"struct.std::_List_node.56"*, align 4
  %temp.lvalue = alloca %"class.std::allocator.58", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, i32 0, i32 0
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  %1 = bitcast %"struct.std::__detail::_List_node_base"* %0 to %"struct.std::_List_node.56"*
  store %"struct.std::_List_node.56"* %1, %"struct.std::_List_node.56"** %__cur, align 4
  br label %while.cond

while.cond:                                       ; preds = %invoke.cont5, %entry
  %2 = load %"struct.std::_List_node.56"** %__cur, align 4
  %3 = bitcast %"struct.std::_List_node.56"* %2 to %"struct.std::__detail::_List_node_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node3 = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl2, i32 0, i32 0
  %cmp = icmp ne %"struct.std::__detail::_List_node_base"* %3, %_M_node3
  br i1 %cmp, label %while.body, label %while.end

while.body:                                       ; preds = %while.cond
  %4 = load %"struct.std::_List_node.56"** %__cur, align 4
  store %"struct.std::_List_node.56"* %4, %"struct.std::_List_node.56"** %__tmp, align 4
  %5 = load %"struct.std::_List_node.56"** %__cur, align 4
  %6 = bitcast %"struct.std::_List_node.56"* %5 to %"struct.std::__detail::_List_node_base"*
  %_M_next4 = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %6, i32 0, i32 0
  %7 = load %"struct.std::__detail::_List_node_base"** %_M_next4, align 4
  %8 = bitcast %"struct.std::__detail::_List_node_base"* %7 to %"struct.std::_List_node.56"*
  store %"struct.std::_List_node.56"* %8, %"struct.std::_List_node.56"** %__cur, align 4
  call void @_ZNKSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE19_M_get_Tp_allocatorEv(%"class.std::allocator.58"* sret %temp.lvalue, %"class.std::_List_base"* %this1)
  %9 = bitcast %"class.std::allocator.58"* %temp.lvalue to %"class.__gnu_cxx::new_allocator.59"*
  %10 = load %"struct.std::_List_node.56"** %__tmp, align 4
  %_M_data = getelementptr inbounds %"struct.std::_List_node.56"* %10, i32 0, i32 1
  %call = invoke %"struct.boost::list_edge"* @_ZSt11__addressofIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEPT_RS7_(%"struct.boost::list_edge"* %_M_data)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %while.body
  invoke void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEE7destroyEPS7_(%"class.__gnu_cxx::new_allocator.59"* %9, %"struct.boost::list_edge"* %call)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont
  call void @_ZNSaIN5boost9list_edgeIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.58"* %temp.lvalue) nounwind
  %11 = load %"struct.std::_List_node.56"** %__tmp, align 4
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE11_M_put_nodeEPSt10_List_nodeIS6_E(%"class.std::_List_base"* %this1, %"struct.std::_List_node.56"* %11)
  br label %while.cond

lpad:                                             ; preds = %invoke.cont, %while.body
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %13 = extractvalue { i8*, i32 } %12, 0
  store i8* %13, i8** %exn.slot
  %14 = extractvalue { i8*, i32 } %12, 1
  store i32 %14, i32* %ehselector.slot
  call void @_ZNSaIN5boost9list_edgeIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.58"* %temp.lvalue) nounwind
  br label %eh.resume

while.end:                                        ; preds = %while.cond
  ret void

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val6 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val6
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implD1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implD2Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implD2Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  %0 = bitcast %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1 to %"class.std::allocator"*
  call void @_ZNSaISt10_List_nodeIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEED2Ev(%"class.std::allocator"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEED2Ev(%"class.std::allocator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator"*, align 4
  store %"class.std::allocator"* %this, %"class.std::allocator"** %this.addr, align 4
  %this1 = load %"class.std::allocator"** %this.addr
  %0 = bitcast %"class.std::allocator"* %this1 to %"class.__gnu_cxx::new_allocator"*
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEED2Ev(%"class.__gnu_cxx::new_allocator"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEED2Ev(%"class.__gnu_cxx::new_allocator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator"*, align 4
  store %"class.__gnu_cxx::new_allocator"* %this, %"class.__gnu_cxx::new_allocator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator"** %this.addr
  ret void
}

define linkonce_odr void @_ZNKSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE19_M_get_Tp_allocatorEv(%"class.std::allocator.58"* noalias sret %agg.result, %"class.std::_List_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %call = call %"class.std::allocator"* @_ZNKSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE21_M_get_Node_allocatorEv(%"class.std::_List_base"* %this1)
  call void @_ZNSaIN5boost9list_edgeIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC1ISt10_List_nodeIS5_EEERKSaIT_E(%"class.std::allocator.58"* %agg.result, %"class.std::allocator"* %call) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEE7destroyEPS7_(%"class.__gnu_cxx::new_allocator.59"* %this, %"struct.boost::list_edge"* %__p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.59"*, align 4
  %__p.addr = alloca %"struct.boost::list_edge"*, align 4
  store %"class.__gnu_cxx::new_allocator.59"* %this, %"class.__gnu_cxx::new_allocator.59"** %this.addr, align 4
  store %"struct.boost::list_edge"* %__p, %"struct.boost::list_edge"** %__p.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.59"** %this.addr
  %0 = load %"struct.boost::list_edge"** %__p.addr, align 4
  ret void
}

define linkonce_odr %"struct.boost::list_edge"* @_ZSt11__addressofIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEPT_RS7_(%"struct.boost::list_edge"* %__r) nounwind inlinehint {
entry:
  %__r.addr = alloca %"struct.boost::list_edge"*, align 4
  store %"struct.boost::list_edge"* %__r, %"struct.boost::list_edge"** %__r.addr, align 4
  %0 = load %"struct.boost::list_edge"** %__r.addr, align 4
  %1 = bitcast %"struct.boost::list_edge"* %0 to i8*
  %2 = bitcast i8* %1 to %"struct.boost::list_edge"*
  ret %"struct.boost::list_edge"* %2
}

define linkonce_odr void @_ZNSaIN5boost9list_edgeIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.58"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.58"*, align 4
  store %"class.std::allocator.58"* %this, %"class.std::allocator.58"** %this.addr, align 4
  %this1 = load %"class.std::allocator.58"** %this.addr
  call void @_ZNSaIN5boost9list_edgeIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED2Ev(%"class.std::allocator.58"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE11_M_put_nodeEPSt10_List_nodeIS6_E(%"class.std::_List_base"* %this, %"struct.std::_List_node.56"* %__p) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  %__p.addr = alloca %"struct.std::_List_node.56"*, align 4
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  store %"struct.std::_List_node.56"* %__p, %"struct.std::_List_node.56"** %__p.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl to %"class.std::allocator"*
  %1 = bitcast %"class.std::allocator"* %0 to %"class.__gnu_cxx::new_allocator"*
  %2 = load %"struct.std::_List_node.56"** %__p.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEE10deallocateEPS9_j(%"class.__gnu_cxx::new_allocator"* %1, %"struct.std::_List_node.56"* %2, i32 1)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEE10deallocateEPS9_j(%"class.__gnu_cxx::new_allocator"* %this, %"struct.std::_List_node.56"* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator"*, align 4
  %__p.addr = alloca %"struct.std::_List_node.56"*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator"* %this, %"class.__gnu_cxx::new_allocator"** %this.addr, align 4
  store %"struct.std::_List_node.56"* %__p, %"struct.std::_List_node.56"** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator"** %this.addr
  %1 = load %"struct.std::_List_node.56"** %__p.addr, align 4
  %2 = bitcast %"struct.std::_List_node.56"* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIN5boost9list_edgeIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED2Ev(%"class.std::allocator.58"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.58"*, align 4
  store %"class.std::allocator.58"* %this, %"class.std::allocator.58"** %this.addr, align 4
  %this1 = load %"class.std::allocator.58"** %this.addr
  %0 = bitcast %"class.std::allocator.58"* %this1 to %"class.__gnu_cxx::new_allocator.59"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEED2Ev(%"class.__gnu_cxx::new_allocator.59"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEED2Ev(%"class.__gnu_cxx::new_allocator.59"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.59"*, align 4
  store %"class.__gnu_cxx::new_allocator.59"* %this, %"class.__gnu_cxx::new_allocator.59"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.59"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSaIN5boost9list_edgeIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC1ISt10_List_nodeIS5_EEERKSaIT_E(%"class.std::allocator.58"* %this, %"class.std::allocator"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.58"*, align 4
  %.addr = alloca %"class.std::allocator"*, align 4
  store %"class.std::allocator.58"* %this, %"class.std::allocator.58"** %this.addr, align 4
  store %"class.std::allocator"* %0, %"class.std::allocator"** %.addr, align 4
  %this1 = load %"class.std::allocator.58"** %this.addr
  %1 = load %"class.std::allocator"** %.addr
  call void @_ZNSaIN5boost9list_edgeIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC2ISt10_List_nodeIS5_EEERKSaIT_E(%"class.std::allocator.58"* %this1, %"class.std::allocator"* %1) nounwind
  ret void
}

define linkonce_odr %"class.std::allocator"* @_ZNKSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE21_M_get_Node_allocatorEv(%"class.std::_List_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl to %"class.std::allocator"*
  ret %"class.std::allocator"* %0
}

define linkonce_odr void @_ZNSaIN5boost9list_edgeIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC2ISt10_List_nodeIS5_EEERKSaIT_E(%"class.std::allocator.58"* %this, %"class.std::allocator"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.58"*, align 4
  %.addr = alloca %"class.std::allocator"*, align 4
  store %"class.std::allocator.58"* %this, %"class.std::allocator.58"** %this.addr, align 4
  store %"class.std::allocator"* %0, %"class.std::allocator"** %.addr, align 4
  %this1 = load %"class.std::allocator.58"** %this.addr
  %1 = bitcast %"class.std::allocator.58"* %this1 to %"class.__gnu_cxx::new_allocator.59"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEC2Ev(%"class.__gnu_cxx::new_allocator.59"* %1) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEC2Ev(%"class.__gnu_cxx::new_allocator.59"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.59"*, align 4
  store %"class.__gnu_cxx::new_allocator.59"* %this, %"class.__gnu_cxx::new_allocator.59"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.59"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EED2Ev(%"class.std::vector"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %2 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %2, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %4 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvT_SG_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3, %"class.std::allocator.0"* %call)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont
  %5 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EED2Ev(%"struct.std::_Vector_base"* %5)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  %9 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  invoke void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EED2Ev(%"struct.std::_Vector_base"* %9)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvT_SG_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"class.std::allocator.0"*) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"class.std::allocator.0"* %0, %"class.std::allocator.0"** %.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  call void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEvT_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret void
}

define linkonce_odr %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl to %"class.std::allocator.0"*
  ret %"class.std::allocator.0"* %0
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EED2Ev(%"struct.std::_Vector_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start4, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 12
  invoke void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE13_M_deallocateEPSE_j(%"struct.std::_Vector_base"* %this1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, i32 %sub.ptr.div)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl5) nounwind
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl6) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE13_M_deallocateEPSE_j(%"struct.std::_Vector_base"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__p, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  %__p.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__p, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  %tobool = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.1"*
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  %3 = load i32* %__n.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEE10deallocateEPSF_j(%"class.__gnu_cxx::new_allocator.1"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2, i32 %3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1 to %"class.std::allocator.0"*
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEED2Ev(%"class.std::allocator.0"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEED2Ev(%"class.std::allocator.0"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  %0 = bitcast %"class.std::allocator.0"* %this1 to %"class.__gnu_cxx::new_allocator.1"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEED2Ev(%"class.__gnu_cxx::new_allocator.1"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEED2Ev(%"class.__gnu_cxx::new_allocator.1"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEE10deallocateEPSF_j(%"class.__gnu_cxx::new_allocator.1"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  %__p.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__p, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  %2 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEvT_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  call void @_ZNSt12_Destroy_auxILb0EE9__destroyIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_5listSENS2_4vecSENS2_9directedSENS2_11no_propertyENS2_8propertyINS2_13edge_weight_tEiS9_EES9_S6_EES7_S6_S8_S9_SC_S9_S6_E6config13stored_vertexEEEvT_SI_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  ret void
}

define linkonce_odr void @_ZNSt12_Destroy_auxILb0EE9__destroyIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_5listSENS2_4vecSENS2_9directedSENS2_11no_propertyENS2_8propertyINS2_13edge_weight_tEiS9_EES9_S6_EES7_S6_S8_S9_SC_S9_S6_E6config13stored_vertexEEEvT_SI_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last) align 2 {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %cmp = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %1
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt11__addressofIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEPT_RSF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  call void @_ZSt8_DestroyIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEvPT_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEvPT_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__pointer) inlinehint {
entry:
  %__pointer.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__pointer, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__pointer.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__pointer.addr, align 4
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  ret void
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt11__addressofIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEPT_RSF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__r) nounwind inlinehint {
entry:
  %__r.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__r, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__r.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__r.addr, align 4
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0 to i8*
  %2 = bitcast i8* %1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %0 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config18rand_stored_vertexD2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config18rand_stored_vertexD2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 0
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED1Ev(%"class.std::list.21"* %m_out_edges)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED1Ev(%"class.std::list.21"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED2Ev(%"class.std::list.21"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED2Ev(%"class.std::list.21"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED2Ev(%"class.std::_List_base.22"* %0)
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED2Ev(%"class.std::_List_base.22"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  invoke void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE8_M_clearEv(%"class.std::_List_base.22"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implD1Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl) nounwind
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implD1Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl2) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE8_M_clearEv(%"class.std::_List_base.22"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  %__cur = alloca %"struct.std::_List_node"*, align 4
  %__tmp = alloca %"struct.std::_List_node"*, align 4
  %temp.lvalue = alloca %"class.std::allocator.61", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, i32 0, i32 0
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  %1 = bitcast %"struct.std::__detail::_List_node_base"* %0 to %"struct.std::_List_node"*
  store %"struct.std::_List_node"* %1, %"struct.std::_List_node"** %__cur, align 4
  br label %while.cond

while.cond:                                       ; preds = %invoke.cont5, %entry
  %2 = load %"struct.std::_List_node"** %__cur, align 4
  %3 = bitcast %"struct.std::_List_node"* %2 to %"struct.std::__detail::_List_node_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %_M_node3 = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl2, i32 0, i32 0
  %cmp = icmp ne %"struct.std::__detail::_List_node_base"* %3, %_M_node3
  br i1 %cmp, label %while.body, label %while.end

while.body:                                       ; preds = %while.cond
  %4 = load %"struct.std::_List_node"** %__cur, align 4
  store %"struct.std::_List_node"* %4, %"struct.std::_List_node"** %__tmp, align 4
  %5 = load %"struct.std::_List_node"** %__cur, align 4
  %6 = bitcast %"struct.std::_List_node"* %5 to %"struct.std::__detail::_List_node_base"*
  %_M_next4 = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %6, i32 0, i32 0
  %7 = load %"struct.std::__detail::_List_node_base"** %_M_next4, align 4
  %8 = bitcast %"struct.std::__detail::_List_node_base"* %7 to %"struct.std::_List_node"*
  store %"struct.std::_List_node"* %8, %"struct.std::_List_node"** %__cur, align 4
  call void @_ZNKSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE19_M_get_Tp_allocatorEv(%"class.std::allocator.61"* sret %temp.lvalue, %"class.std::_List_base.22"* %this1)
  %9 = bitcast %"class.std::allocator.61"* %temp.lvalue to %"class.__gnu_cxx::new_allocator.62"*
  %10 = load %"struct.std::_List_node"** %__tmp, align 4
  %_M_data = getelementptr inbounds %"struct.std::_List_node"* %10, i32 0, i32 1
  %call = invoke %"class.boost::detail::stored_edge_property"* @_ZSt11__addressofIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEPT_RS8_(%"class.boost::detail::stored_edge_property"* %_M_data)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %while.body
  invoke void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEE7destroyEPS8_(%"class.__gnu_cxx::new_allocator.62"* %9, %"class.boost::detail::stored_edge_property"* %call)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %temp.lvalue) nounwind
  %11 = load %"struct.std::_List_node"** %__tmp, align 4
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE11_M_put_nodeEPSt10_List_nodeIS7_E(%"class.std::_List_base.22"* %this1, %"struct.std::_List_node"* %11)
  br label %while.cond

lpad:                                             ; preds = %invoke.cont, %while.body
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %13 = extractvalue { i8*, i32 } %12, 0
  store i8* %13, i8** %exn.slot
  %14 = extractvalue { i8*, i32 } %12, 1
  store i32 %14, i32* %ehselector.slot
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %temp.lvalue) nounwind
  br label %eh.resume

while.end:                                        ; preds = %while.cond
  ret void

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val6 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val6
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implD1Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implD2Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implD2Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  %0 = bitcast %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1 to %"class.std::allocator.23"*
  call void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEED2Ev(%"class.std::allocator.23"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEED2Ev(%"class.std::allocator.23"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.23"* %this, %"class.std::allocator.23"** %this.addr, align 4
  %this1 = load %"class.std::allocator.23"** %this.addr
  %0 = bitcast %"class.std::allocator.23"* %this1 to %"class.__gnu_cxx::new_allocator.24"*
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEED2Ev(%"class.__gnu_cxx::new_allocator.24"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEED2Ev(%"class.__gnu_cxx::new_allocator.24"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  ret void
}

define linkonce_odr void @_ZNKSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE19_M_get_Tp_allocatorEv(%"class.std::allocator.61"* noalias sret %agg.result, %"class.std::_List_base.22"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  %call = call %"class.std::allocator.23"* @_ZNKSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE21_M_get_Node_allocatorEv(%"class.std::_List_base.22"* %this1)
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC1ISt10_List_nodeIS6_EEERKSaIT_E(%"class.std::allocator.61"* %agg.result, %"class.std::allocator.23"* %call) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEE7destroyEPS8_(%"class.__gnu_cxx::new_allocator.62"* %this, %"class.boost::detail::stored_edge_property"* %__p) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.62"*, align 4
  %__p.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.__gnu_cxx::new_allocator.62"* %this, %"class.__gnu_cxx::new_allocator.62"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.62"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEED1Ev(%"class.boost::detail::stored_edge_property"* %0)
  ret void
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt11__addressofIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEPT_RS8_(%"class.boost::detail::stored_edge_property"* %__r) nounwind inlinehint {
entry:
  %__r.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__r, %"class.boost::detail::stored_edge_property"** %__r.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__r.addr, align 4
  %1 = bitcast %"class.boost::detail::stored_edge_property"* %0 to i8*
  %2 = bitcast i8* %1 to %"class.boost::detail::stored_edge_property"*
  ret %"class.boost::detail::stored_edge_property"* %2
}

define linkonce_odr void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.61"*, align 4
  store %"class.std::allocator.61"* %this, %"class.std::allocator.61"** %this.addr, align 4
  %this1 = load %"class.std::allocator.61"** %this.addr
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED2Ev(%"class.std::allocator.61"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE11_M_put_nodeEPSt10_List_nodeIS7_E(%"class.std::_List_base.22"* %this, %"struct.std::_List_node"* %__p) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  %__p.addr = alloca %"struct.std::_List_node"*, align 4
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  store %"struct.std::_List_node"* %__p, %"struct.std::_List_node"** %__p.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl to %"class.std::allocator.23"*
  %1 = bitcast %"class.std::allocator.23"* %0 to %"class.__gnu_cxx::new_allocator.24"*
  %2 = load %"struct.std::_List_node"** %__p.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEE10deallocateEPSA_j(%"class.__gnu_cxx::new_allocator.24"* %1, %"struct.std::_List_node"* %2, i32 1)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEE10deallocateEPSA_j(%"class.__gnu_cxx::new_allocator.24"* %this, %"struct.std::_List_node"* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  %__p.addr = alloca %"struct.std::_List_node"*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  store %"struct.std::_List_node"* %__p, %"struct.std::_List_node"** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  %1 = load %"struct.std::_List_node"** %__p.addr, align 4
  %2 = bitcast %"struct.std::_List_node"* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED2Ev(%"class.std::allocator.61"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.61"*, align 4
  store %"class.std::allocator.61"* %this, %"class.std::allocator.61"** %this.addr, align 4
  %this1 = load %"class.std::allocator.61"** %this.addr
  %0 = bitcast %"class.std::allocator.61"* %this1 to %"class.__gnu_cxx::new_allocator.62"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEED2Ev(%"class.__gnu_cxx::new_allocator.62"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEED2Ev(%"class.__gnu_cxx::new_allocator.62"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.62"*, align 4
  store %"class.__gnu_cxx::new_allocator.62"* %this, %"class.__gnu_cxx::new_allocator.62"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.62"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEED1Ev(%"class.boost::detail::stored_edge_property"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEED2Ev(%"class.boost::detail::stored_edge_property"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEED2Ev(%"class.boost::detail::stored_edge_property"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  call void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEED1Ev(%"class.std::auto_ptr"* %m_property)
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEED1Ev(%"class.std::auto_ptr"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  call void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEED2Ev(%"class.std::auto_ptr"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEED2Ev(%"class.std::auto_ptr"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::property"** %_M_ptr, align 4
  %isnull = icmp eq %"struct.boost::property"* %0, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  %1 = bitcast %"struct.boost::property"* %0 to i8*
  call void @_ZdlPv(i8* %1) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC1ISt10_List_nodeIS6_EEERKSaIT_E(%"class.std::allocator.61"* %this, %"class.std::allocator.23"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.61"*, align 4
  %.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.61"* %this, %"class.std::allocator.61"** %this.addr, align 4
  store %"class.std::allocator.23"* %0, %"class.std::allocator.23"** %.addr, align 4
  %this1 = load %"class.std::allocator.61"** %this.addr
  %1 = load %"class.std::allocator.23"** %.addr
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC2ISt10_List_nodeIS6_EEERKSaIT_E(%"class.std::allocator.61"* %this1, %"class.std::allocator.23"* %1) nounwind
  ret void
}

define linkonce_odr %"class.std::allocator.23"* @_ZNKSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE21_M_get_Node_allocatorEv(%"class.std::_List_base.22"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl to %"class.std::allocator.23"*
  ret %"class.std::allocator.23"* %0
}

define linkonce_odr void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC2ISt10_List_nodeIS6_EEERKSaIT_E(%"class.std::allocator.61"* %this, %"class.std::allocator.23"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.61"*, align 4
  %.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.61"* %this, %"class.std::allocator.61"** %this.addr, align 4
  store %"class.std::allocator.23"* %0, %"class.std::allocator.23"** %.addr, align 4
  %this1 = load %"class.std::allocator.61"** %this.addr
  %1 = bitcast %"class.std::allocator.61"* %this1 to %"class.__gnu_cxx::new_allocator.62"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEC2Ev(%"class.__gnu_cxx::new_allocator.62"* %1) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEC2Ev(%"class.__gnu_cxx::new_allocator.62"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.62"*, align 4
  store %"class.__gnu_cxx::new_allocator.62"* %this, %"class.__gnu_cxx::new_allocator.62"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.62"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost10scoped_ptrINS_11no_propertyEEC2EPS1_(%"class.boost::scoped_ptr"* %this, %"struct.boost::no_property"* %p) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_ptr"*, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.boost::scoped_ptr"* %this, %"class.boost::scoped_ptr"** %this.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::scoped_ptr"** %this.addr
  %px = getelementptr inbounds %"class.boost::scoped_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::no_property"** %p.addr, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %px, align 4
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EEC1Ev(%"class.std::list"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list"*, align 4
  store %"class.std::list"* %this, %"class.std::list"** %this.addr, align 4
  %this1 = load %"class.std::list"** %this.addr
  call void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EEC2Ev(%"class.std::list"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEC1EjRKSE_RKSF_(%"class.std::vector"* %this, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"class.std::allocator.0"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr
  %2 = load %"class.std::allocator.0"** %__a.addr
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEC2EjRKSE_RKSF_(%"class.std::vector"* %this1, i32 %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"class.std::allocator.0"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this1)
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEEC1Ev(%"class.std::allocator.0"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEEC2Ev(%"class.std::allocator.0"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEED1Ev(%"class.std::allocator.0"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEED2Ev(%"class.std::allocator.0"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost8add_edgeINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEEESt4pairINT0_15edge_descriptorEbENSH_17vertex_descriptorESK_RKNSH_18edge_property_typeERNS_17vec_adj_list_implIT_SH_T1_EE(%"struct.std::pair.64"* noalias sret %agg.result, i32 %u, i32 %v, %"struct.boost::property"* %p, %"class.boost::vec_adj_list_impl"* %g_) inlinehint {
entry:
  %u.addr = alloca i32, align 4
  %v.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::property"*, align 4
  %g_.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %x = alloca i32, align 4
  %agg.tmp = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %g = alloca %"struct.boost::adj_list_helper"*, align 4
  store i32 %u, i32* %u.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  store %"struct.boost::property"* %p, %"struct.boost::property"** %p.addr, align 4
  store %"class.boost::vec_adj_list_impl"* %g_, %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  %call = call i32* @_ZSt3maxIjERKT_S2_S2_(i32* %u.addr, i32* %v.addr)
  %0 = load i32* %call
  store i32 %0, i32* %x, align 4
  %1 = load i32* %x, align 4
  %2 = load %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  %3 = bitcast %"class.boost::vec_adj_list_impl"* %2 to %"struct.boost::adj_list_helper"*
  %call1 = call i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configENS_21directed_graph_helperISD_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISG_T0_EE(%"struct.boost::adj_list_helper"* %3)
  %cmp = icmp uge i32 %1, %call1
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %4 = load %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %4, i32 0, i32 1
  %5 = load i32* %x, align 4
  %add = add i32 %5, 1
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %agg.tmp)
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE6resizeEjSE_(%"class.std::vector"* %m_vertices, i32 %add, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.then
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %agg.tmp)
  br label %if.end

lpad:                                             ; preds = %if.then
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %agg.tmp)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

if.end:                                           ; preds = %invoke.cont, %entry
  %9 = load %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  %10 = bitcast %"class.boost::vec_adj_list_impl"* %9 to %"struct.boost::adj_list_helper"*
  store %"struct.boost::adj_list_helper"* %10, %"struct.boost::adj_list_helper"** %g, align 4
  %11 = load i32* %u.addr, align 4
  %12 = load i32* %v.addr, align 4
  %13 = load %"struct.boost::property"** %p.addr, align 4
  %14 = load %"struct.boost::adj_list_helper"** %g, align 4
  %15 = bitcast %"struct.boost::adj_list_helper"* %14 to %"struct.boost::directed_graph_helper"*
  call void @_ZN5boost8add_edgeINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configEEESt4pairINS_21directed_graph_helperIT_E15edge_descriptorEbENSG_17vertex_descriptorESK_RKNSG_18edge_property_typeERSH_(%"struct.std::pair.64"* sret %agg.result, i32 %11, i32 %12, %"struct.boost::property"* %13, %"struct.boost::directed_graph_helper"* %15)
  ret void

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %16 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost8propertyINS_13edge_weight_tEiNS_11no_propertyEEC1ERKi(%"struct.boost::property"* %this, i32* %v) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::property"*, align 4
  %v.addr = alloca i32*, align 4
  store %"struct.boost::property"* %this, %"struct.boost::property"** %this.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  %this1 = load %"struct.boost::property"** %this.addr
  %0 = load i32** %v.addr
  call void @_ZN5boost8propertyINS_13edge_weight_tEiNS_11no_propertyEEC2ERKi(%"struct.boost::property"* %this1, i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost8propertyINS_13edge_weight_tEiNS_11no_propertyEEC2ERKi(%"struct.boost::property"* %this, i32* %v) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::property"*, align 4
  %v.addr = alloca i32*, align 4
  store %"struct.boost::property"* %this, %"struct.boost::property"** %this.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  %this1 = load %"struct.boost::property"** %this.addr
  %m_value = getelementptr inbounds %"struct.boost::property"* %this1, i32 0, i32 0
  %0 = load i32** %v.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %m_value, align 4
  %m_base = getelementptr inbounds %"struct.boost::property"* %this1, i32 0, i32 1
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE6resizeEjSE_(%"class.std::vector"* %this, i32 %__new_size, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__new_size.addr = alloca i32, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__new_size, i32* %__new_size.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = load i32* %__new_size.addr, align 4
  %call = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE4sizeEv(%"class.std::vector"* %this1)
  %cmp = icmp ugt i32 %0, %call
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE3endEv(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.tmp, %"class.std::vector"* %this1)
  %1 = load i32* %__new_size.addr, align 4
  %call2 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE4sizeEv(%"class.std::vector"* %this1)
  %sub = sub i32 %1, %call2
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE6insertEN9__gnu_cxx17__normal_iteratorIPSE_SG_EEjRKSE_(%"class.std::vector"* %this1, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp, i32 %sub, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x)
  br label %if.end6

if.else:                                          ; preds = %entry
  %2 = load i32* %__new_size.addr, align 4
  %call3 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE4sizeEv(%"class.std::vector"* %this1)
  %cmp4 = icmp ult i32 %2, %call3
  br i1 %cmp4, label %if.then5, label %if.end

if.then5:                                         ; preds = %if.else
  %3 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %3, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %5 = load i32* %__new_size.addr, align 4
  %add.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %4, i32 %5
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE15_M_erase_at_endEPSE_(%"class.std::vector"* %this1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr)
  br label %if.end

if.end:                                           ; preds = %if.then5, %if.else
  br label %if.end6

if.end6:                                          ; preds = %if.end, %if.then
  ret void
}

define linkonce_odr void @_ZN5boost8add_edgeINS_6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6configEEESt4pairINS_21directed_graph_helperIT_E15edge_descriptorEbENSG_17vertex_descriptorESK_RKNSG_18edge_property_typeERSH_(%"struct.std::pair.64"* noalias sret %agg.result, i32 %u, i32 %v, %"struct.boost::property"* %p, %"struct.boost::directed_graph_helper"* %g_) inlinehint {
entry:
  %u.addr = alloca i32, align 4
  %v.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::property"*, align 4
  %g_.addr = alloca %"struct.boost::directed_graph_helper"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  %i = alloca %"struct.std::_List_iterator", align 4
  %inserted = alloca i8, align 1
  %tmp = alloca %"class.boost::tuples::tuple.65", align 4
  %ref.tmp = alloca %"struct.std::pair.68", align 4
  %ref.tmp1 = alloca %"class.boost::detail::stored_edge_property", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  store i32 %u, i32* %u.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  store %"struct.boost::property"* %p, %"struct.boost::property"** %p.addr, align 4
  store %"struct.boost::directed_graph_helper"* %g_, %"struct.boost::directed_graph_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::directed_graph_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::directed_graph_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %g, align 4
  call void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1Ev(%"struct.std::_List_iterator"* %i)
  call void @_ZN5boost6tuples3tieISt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEbEENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSD_RSE_(%"class.boost::tuples::tuple.65"* sret %tmp, %"struct.std::_List_iterator"* %i, i8* %inserted)
  %2 = load %"class.boost::adjacency_list"** %g, align 4
  %3 = bitcast %"class.boost::adjacency_list"* %2 to %"class.boost::vec_adj_list_impl"*
  %4 = load i32* %u.addr, align 4
  %call = call %"class.std::list.21"* @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %3, i32 %4)
  %5 = load i32* %v.addr, align 4
  %6 = load %"struct.boost::property"** %p.addr, align 4
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEC1EjRKS5_(%"class.boost::detail::stored_edge_property"* %ref.tmp1, i32 %5, %"struct.boost::property"* %6)
  invoke void @_ZN5boost12graph_detail4pushISt4listINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEESaIS9_EES9_EESt4pairINT_8iteratorEbERSD_RKT0_(%"struct.std::pair.68"* sret %ref.tmp, %"class.std::list.21"* %call, %"class.boost::detail::stored_edge_property"* %ref.tmp1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %call3 = invoke %"class.boost::tuples::tuple.65"* @_ZN5boost6tuples5tupleIRSt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEERbNS0_9null_typeESD_SD_SD_SD_SD_SD_SD_EaSISA_bEERSE_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.65"* %tmp, %"struct.std::pair.68"* %ref.tmp)
          to label %invoke.cont2 unwind label %lpad

invoke.cont2:                                     ; preds = %invoke.cont
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEED1Ev(%"class.boost::detail::stored_edge_property"* %ref.tmp1)
  %7 = load i32* %u.addr, align 4
  %8 = load i32* %v.addr, align 4
  %call5 = call %"class.boost::detail::stored_edge_property"* @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEdeEv(%"struct.std::_List_iterator"* %i)
  %call6 = call %"struct.boost::property"* @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEE12get_propertyEv(%"class.boost::detail::stored_edge_property"* %call5)
  %9 = bitcast %"struct.boost::property"* %call6 to i8*
  call void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC1EjjPKv(%"class.boost::detail::edge_desc_impl"* %agg.tmp, i32 %7, i32 %8, i8* %9)
  %10 = load i8* %inserted, align 1
  %tobool = trunc i8 %10 to i1
  call void @_ZSt9make_pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbESt4pairIT_T0_ES6_S7_(%"struct.std::pair.64"* sret %agg.result, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, i1 zeroext %tobool)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %11 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %12 = extractvalue { i8*, i32 } %11, 0
  store i8* %12, i8** %exn.slot
  %13 = extractvalue { i8*, i32 } %11, 1
  store i32 %13, i32* %ehselector.slot
  invoke void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEED1Ev(%"class.boost::detail::stored_edge_property"* %ref.tmp1)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7

terminate.lpad:                                   ; preds = %lpad
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost6tuples3tieISt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEbEENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSD_RSE_(%"class.boost::tuples::tuple.65"* noalias sret %agg.result, %"struct.std::_List_iterator"* %t0, i8* %t1) inlinehint {
entry:
  %t0.addr = alloca %"struct.std::_List_iterator"*, align 4
  %t1.addr = alloca i8*, align 4
  store %"struct.std::_List_iterator"* %t0, %"struct.std::_List_iterator"** %t0.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  %0 = load %"struct.std::_List_iterator"** %t0.addr, align 4
  %1 = load i8** %t1.addr, align 4
  call void @_ZN5boost6tuples5tupleIRSt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEERbNS0_9null_typeESD_SD_SD_SD_SD_SD_SD_EC1ESB_SC_(%"class.boost::tuples::tuple.65"* %agg.result, %"struct.std::_List_iterator"* %0, i8* %1)
  ret void
}

define linkonce_odr %"class.boost::tuples::tuple.65"* @_ZN5boost6tuples5tupleIRSt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEERbNS0_9null_typeESD_SD_SD_SD_SD_SD_SD_EaSISA_bEERSE_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.65"* %this, %"struct.std::pair.68"* %k) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.65"*, align 4
  %k.addr = alloca %"struct.std::pair.68"*, align 4
  store %"class.boost::tuples::tuple.65"* %this, %"class.boost::tuples::tuple.65"** %this.addr, align 4
  store %"struct.std::pair.68"* %k, %"struct.std::pair.68"** %k.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.65"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.65"* %this1 to %"struct.boost::tuples::cons.66"*
  %head = getelementptr inbounds %"struct.boost::tuples::cons.66"* %0, i32 0, i32 0
  %ref = load %"struct.std::_List_iterator"** %head, align 4
  %1 = load %"struct.std::pair.68"** %k.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.68"* %1, i32 0, i32 0
  %2 = bitcast %"struct.std::_List_iterator"* %ref to i8*
  %3 = bitcast %"struct.std::_List_iterator"* %first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = load %"struct.std::pair.68"** %k.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.68"* %4, i32 0, i32 1
  %5 = load i8* %second, align 1
  %tobool = trunc i8 %5 to i1
  %6 = bitcast %"class.boost::tuples::tuple.65"* %this1 to %"struct.boost::tuples::cons.66"*
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.66"* %6, i32 0, i32 1
  %head2 = getelementptr inbounds %"struct.boost::tuples::cons.67"* %tail, i32 0, i32 0
  %ref3 = load i8** %head2, align 4
  %frombool = zext i1 %tobool to i8
  store i8 %frombool, i8* %ref3, align 1
  ret %"class.boost::tuples::tuple.65"* %this1
}

define linkonce_odr void @_ZN5boost12graph_detail4pushISt4listINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEESaIS9_EES9_EESt4pairINT_8iteratorEbERSD_RKT0_(%"struct.std::pair.68"* noalias sret %agg.result, %"class.std::list.21"* %c, %"class.boost::detail::stored_edge_property"* %v) {
entry:
  %c.addr = alloca %"class.std::list.21"*, align 4
  %v.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %agg.tmp = alloca %"struct.boost::graph_detail::back_insertion_sequence_tag", align 4
  %ref.tmp = alloca %"struct.boost::graph_detail::list_tag", align 4
  store %"class.std::list.21"* %c, %"class.std::list.21"** %c.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %v, %"class.boost::detail::stored_edge_property"** %v.addr, align 4
  %0 = load %"class.std::list.21"** %c.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %v.addr, align 4
  %2 = load %"class.std::list.21"** %c.addr, align 4
  call void @_ZN5boost12graph_detail18container_categoryINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEESaIS8_EEENS0_8list_tagERKSt4listIT_T0_E(%"struct.boost::graph_detail::list_tag"* sret %ref.tmp, %"class.std::list.21"* %2)
  %3 = bitcast %"struct.boost::graph_detail::list_tag"* %ref.tmp to i8**
  %vtable = load i8** %3
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -24
  %4 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %4
  %5 = bitcast %"struct.boost::graph_detail::list_tag"* %ref.tmp to i8*
  %add.ptr = getelementptr inbounds i8* %5, i32 %vbase.offset
  %6 = bitcast i8* %add.ptr to %"struct.boost::graph_detail::back_insertion_sequence_tag"*
  call void @_ZN5boost12graph_detail27back_insertion_sequence_tagC1ERKS1_(%"struct.boost::graph_detail::back_insertion_sequence_tag"* %agg.tmp, %"struct.boost::graph_detail::back_insertion_sequence_tag"* %6) nounwind
  call void @_ZN5boost12graph_detail13push_dispatchISt4listINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEESaIS9_EES9_EESt4pairINT_8iteratorEbERSD_RKT0_NS0_27back_insertion_sequence_tagE(%"struct.std::pair.68"* sret %agg.result, %"class.std::list.21"* %0, %"class.boost::detail::stored_edge_property"* %1, %"struct.boost::graph_detail::back_insertion_sequence_tag"* %agg.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEC1EjRKS5_(%"class.boost::detail::stored_edge_property"* %this, i32 %target, %"struct.boost::property"* %p) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %target.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store i32 %target, i32* %target.addr, align 4
  store %"struct.boost::property"* %p, %"struct.boost::property"** %p.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = load i32* %target.addr, align 4
  %1 = load %"struct.boost::property"** %p.addr
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEC2EjRKS5_(%"class.boost::detail::stored_edge_property"* %this1, i32 %0, %"struct.boost::property"* %1)
  ret void
}

define linkonce_odr void @_ZSt9make_pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbESt4pairIT_T0_ES6_S7_(%"struct.std::pair.64"* noalias sret %agg.result, %"class.boost::detail::edge_desc_impl"* byval align 4 %__x, i1 zeroext %__y) inlinehint {
entry:
  %__y.addr = alloca i8, align 1
  %frombool = zext i1 %__y to i8
  store i8 %frombool, i8* %__y.addr, align 1
  call void @_ZNSt4pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbEC1ERKS4_RKb(%"struct.std::pair.64"* %agg.result, %"class.boost::detail::edge_desc_impl"* %__x, i8* %__y.addr)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbEC1ERKS4_RKb(%"struct.std::pair.64"* %this, %"class.boost::detail::edge_desc_impl"* %__a, i8* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.64"*, align 4
  %__a.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %__b.addr = alloca i8*, align 4
  store %"struct.std::pair.64"* %this, %"struct.std::pair.64"** %this.addr, align 4
  store %"class.boost::detail::edge_desc_impl"* %__a, %"class.boost::detail::edge_desc_impl"** %__a.addr, align 4
  store i8* %__b, i8** %__b.addr, align 4
  %this1 = load %"struct.std::pair.64"** %this.addr
  %0 = load i8** %__b.addr
  %1 = load %"class.boost::detail::edge_desc_impl"** %__a.addr
  call void @_ZNSt4pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbEC2ERKS4_RKb(%"struct.std::pair.64"* %this1, %"class.boost::detail::edge_desc_impl"* %1, i8* %0)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbEC2ERKS4_RKb(%"struct.std::pair.64"* %this, %"class.boost::detail::edge_desc_impl"* %__a, i8* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.64"*, align 4
  %__a.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %__b.addr = alloca i8*, align 4
  store %"struct.std::pair.64"* %this, %"struct.std::pair.64"** %this.addr, align 4
  store %"class.boost::detail::edge_desc_impl"* %__a, %"class.boost::detail::edge_desc_impl"** %__a.addr, align 4
  store i8* %__b, i8** %__b.addr, align 4
  %this1 = load %"struct.std::pair.64"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.64"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::edge_desc_impl"** %__a.addr, align 4
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %first to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %0 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %second = getelementptr inbounds %"struct.std::pair.64"* %this1, i32 0, i32 1
  %3 = load i8** %__b.addr, align 4
  %4 = load i8* %3, align 1
  %tobool = trunc i8 %4 to i1
  %frombool = zext i1 %tobool to i8
  store i8 %frombool, i8* %second, align 1
  ret void
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEC2EjRKS5_(%"class.boost::detail::stored_edge_property"* %this, i32 %target, %"struct.boost::property"* %p) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %target.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::property"*, align 4
  %ref.tmp = alloca %"struct.boost::no_property", align 1
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store i32 %target, i32* %target.addr, align 4
  store %"struct.boost::property"* %p, %"struct.boost::property"** %p.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = bitcast %"class.boost::detail::stored_edge_property"* %this1 to %"class.boost::detail::stored_edge"*
  %1 = load i32* %target.addr, align 4
  call void @_ZN5boost6detail11stored_edgeIjEC2EjRKNS_11no_propertyE(%"class.boost::detail::stored_edge"* %0, i32 %1, %"struct.boost::no_property"* %ref.tmp)
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  %call = call noalias i8* @_Znwj(i32 8)
  %2 = bitcast i8* %call to %"struct.boost::property"*
  %3 = load %"struct.boost::property"** %p.addr, align 4
  %4 = bitcast %"struct.boost::property"* %2 to i8*
  %5 = bitcast %"struct.boost::property"* %3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 8, i32 4, i1 false)
  call void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEC1EPS4_(%"class.std::auto_ptr"* %m_property, %"struct.boost::property"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost6detail11stored_edgeIjEC2EjRKNS_11no_propertyE(%"class.boost::detail::stored_edge"* %this, i32 %target, %"struct.boost::no_property"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge"*, align 4
  %target.addr = alloca i32, align 4
  %.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.boost::detail::stored_edge"* %this, %"class.boost::detail::stored_edge"** %this.addr, align 4
  store i32 %target, i32* %target.addr, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge"** %this.addr
  %1 = bitcast %"class.boost::detail::stored_edge"* %this1 to %"struct.boost::equality_comparable1"*
  %m_target = getelementptr inbounds %"class.boost::detail::stored_edge"* %this1, i32 0, i32 0
  %2 = load i32* %target.addr, align 4
  store i32 %2, i32* %m_target, align 4
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEC1EPS4_(%"class.std::auto_ptr"* %this, %"struct.boost::property"* %__p) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__p.addr = alloca %"struct.boost::property"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"struct.boost::property"* %__p, %"struct.boost::property"** %__p.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %0 = load %"struct.boost::property"** %__p.addr, align 4
  call void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEC2EPS4_(%"class.std::auto_ptr"* %this1, %"struct.boost::property"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEC2EPS4_(%"class.std::auto_ptr"* %this, %"struct.boost::property"* %__p) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__p.addr = alloca %"struct.boost::property"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"struct.boost::property"* %__p, %"struct.boost::property"** %__p.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::property"** %__p.addr, align 4
  store %"struct.boost::property"* %0, %"struct.boost::property"** %_M_ptr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail13push_dispatchISt4listINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEESaIS9_EES9_EESt4pairINT_8iteratorEbERSD_RKT0_NS0_27back_insertion_sequence_tagE(%"struct.std::pair.68"* noalias sret %agg.result, %"class.std::list.21"* %c, %"class.boost::detail::stored_edge_property"* %v, %"struct.boost::graph_detail::back_insertion_sequence_tag"*) {
entry:
  %c.addr = alloca %"class.std::list.21"*, align 4
  %v.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %agg.tmp = alloca %"struct.std::_List_iterator", align 4
  %agg.tmp1 = alloca %"struct.std::_List_iterator", align 4
  store %"class.std::list.21"* %c, %"class.std::list.21"** %c.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %v, %"class.boost::detail::stored_edge_property"** %v.addr, align 4
  %1 = load %"class.std::list.21"** %c.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %v.addr, align 4
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE9push_backERKS7_(%"class.std::list.21"* %1, %"class.boost::detail::stored_edge_property"* %2)
  %3 = load %"class.std::list.21"** %c.addr, align 4
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_iterator"* sret %agg.tmp1, %"class.std::list.21"* %3)
  call void @_ZN5boost5priorISt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEEET_SA_(%"struct.std::_List_iterator"* sret %agg.tmp, %"struct.std::_List_iterator"* byval align 4 %agg.tmp1)
  call void @_ZSt9make_pairISt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEbESt4pairIT_T0_ESB_SC_(%"struct.std::pair.68"* sret %agg.result, %"struct.std::_List_iterator"* byval align 4 %agg.tmp, i1 zeroext true)
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail27back_insertion_sequence_tagC1ERKS1_(%"struct.boost::graph_detail::back_insertion_sequence_tag"* %this, %"struct.boost::graph_detail::back_insertion_sequence_tag"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::back_insertion_sequence_tag"*, align 4
  %.addr = alloca %"struct.boost::graph_detail::back_insertion_sequence_tag"*, align 4
  store %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this, %"struct.boost::graph_detail::back_insertion_sequence_tag"** %this.addr, align 4
  store %"struct.boost::graph_detail::back_insertion_sequence_tag"* %0, %"struct.boost::graph_detail::back_insertion_sequence_tag"** %.addr, align 4
  %this1 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %this.addr
  %1 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to %"struct.boost::graph_detail::container_tag"*
  %2 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %.addr, align 4
  %3 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %2 to i8**
  %vtable = load i8** %3
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -12
  %4 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %4
  %5 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %2 to i8*
  %add.ptr = getelementptr inbounds i8* %5, i32 %vbase.offset
  %6 = bitcast i8* %add.ptr to %"struct.boost::graph_detail::container_tag"*
  %7 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to %"struct.boost::graph_detail::forward_container_tag"*
  %8 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %.addr, align 4
  %9 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %8 to i8**
  %vtable2 = load i8** %9
  %vbase.offset.ptr3 = getelementptr i8* %vtable2, i64 -16
  %10 = bitcast i8* %vbase.offset.ptr3 to i32*
  %vbase.offset4 = load i32* %10
  %11 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %8 to i8*
  %add.ptr5 = getelementptr inbounds i8* %11, i32 %vbase.offset4
  %12 = bitcast i8* %add.ptr5 to %"struct.boost::graph_detail::forward_container_tag"*
  call void @_ZN5boost12graph_detail21forward_container_tagC2ERKS1_(%"struct.boost::graph_detail::forward_container_tag"* %7, i8** getelementptr inbounds ([6 x i8*]* @_ZTTN5boost12graph_detail27back_insertion_sequence_tagE, i64 0, i64 5), %"struct.boost::graph_detail::forward_container_tag"* %12) nounwind
  %13 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to %"struct.boost::graph_detail::sequence_tag"*
  %14 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %.addr, align 4
  %15 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %14 to i8**
  %vtable6 = load i8** %15
  %vbase.offset.ptr7 = getelementptr i8* %vtable6, i64 -20
  %16 = bitcast i8* %vbase.offset.ptr7 to i32*
  %vbase.offset8 = load i32* %16
  %17 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %14 to i8*
  %add.ptr9 = getelementptr inbounds i8* %17, i32 %vbase.offset8
  %18 = bitcast i8* %add.ptr9 to %"struct.boost::graph_detail::sequence_tag"*
  call void @_ZN5boost12graph_detail12sequence_tagC2ERKS1_(%"struct.boost::graph_detail::sequence_tag"* %13, i8** getelementptr inbounds ([6 x i8*]* @_ZTTN5boost12graph_detail27back_insertion_sequence_tagE, i64 0, i64 3), %"struct.boost::graph_detail::sequence_tag"* %18) nounwind
  %19 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0), i8*** %19
  %20 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0), i8*** %20
  %21 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0), i8*** %21
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail18container_categoryINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEESaIS8_EEENS0_8list_tagERKSt4listIT_T0_E(%"struct.boost::graph_detail::list_tag"* noalias sret %agg.result, %"class.std::list.21"*) nounwind {
entry:
  %.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %0, %"class.std::list.21"** %.addr, align 4
  %1 = bitcast %"struct.boost::graph_detail::list_tag"* %agg.result to i8*
  call void @llvm.memset.p0i8.i32(i8* %1, i8 0, i32 8, i32 4, i1 false)
  call void @_ZN5boost12graph_detail8list_tagC1Ev(%"struct.boost::graph_detail::list_tag"* %agg.result) nounwind
  ret void
}

declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind

define linkonce_odr void @_ZN5boost12graph_detail8list_tagC1Ev(%"struct.boost::graph_detail::list_tag"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::list_tag"*, align 4
  store %"struct.boost::graph_detail::list_tag"* %this, %"struct.boost::graph_detail::list_tag"** %this.addr, align 4
  %this1 = load %"struct.boost::graph_detail::list_tag"** %this.addr
  %0 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to %"struct.boost::graph_detail::container_tag"*
  %1 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to %"struct.boost::graph_detail::forward_container_tag"*
  call void @_ZN5boost12graph_detail21forward_container_tagC2Ev(%"struct.boost::graph_detail::forward_container_tag"* %1, i8** getelementptr inbounds ([13 x i8*]* @_ZTTN5boost12graph_detail8list_tagE, i64 0, i64 7)) nounwind
  %2 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to %"struct.boost::graph_detail::reversible_container_tag"*
  call void @_ZN5boost12graph_detail24reversible_container_tagC2Ev(%"struct.boost::graph_detail::reversible_container_tag"* %2, i8** getelementptr inbounds ([13 x i8*]* @_ZTTN5boost12graph_detail8list_tagE, i64 0, i64 5)) nounwind
  %3 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to i8*
  %4 = getelementptr inbounds i8* %3, i64 4
  %5 = bitcast i8* %4 to %"struct.boost::graph_detail::sequence_tag"*
  call void @_ZN5boost12graph_detail12sequence_tagC2Ev(%"struct.boost::graph_detail::sequence_tag"* %5, i8** getelementptr inbounds ([13 x i8*]* @_ZTTN5boost12graph_detail8list_tagE, i64 0, i64 11)) nounwind
  %6 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to i8*
  %7 = getelementptr inbounds i8* %6, i64 4
  %8 = bitcast i8* %7 to %"struct.boost::graph_detail::back_insertion_sequence_tag"*
  call void @_ZN5boost12graph_detail27back_insertion_sequence_tagC2Ev(%"struct.boost::graph_detail::back_insertion_sequence_tag"* %8, i8** getelementptr inbounds ([13 x i8*]* @_ZTTN5boost12graph_detail8list_tagE, i64 0, i64 8)) nounwind
  %9 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 0, i64 7), i8*** %9
  %10 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 0, i64 7), i8*** %10
  %11 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 0, i64 7), i8*** %11
  %12 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %12, i32 4
  %13 = bitcast i8* %add.ptr to i8***
  store i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 1, i64 0), i8*** %13
  %14 = bitcast %"struct.boost::graph_detail::list_tag"* %this1 to i8*
  %add.ptr2 = getelementptr inbounds i8* %14, i32 4
  %15 = bitcast i8* %add.ptr2 to i8***
  store i8** getelementptr inbounds ([12 x i8*]* @_ZTVN5boost12graph_detail8list_tagE, i64 1, i64 0), i8*** %15
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail21forward_container_tagC2Ev(%"struct.boost::graph_detail::forward_container_tag"* %this, i8** %vtt) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::forward_container_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"struct.boost::graph_detail::forward_container_tag"* %this, %"struct.boost::graph_detail::forward_container_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"struct.boost::graph_detail::forward_container_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = load i8** %vtt2
  %1 = bitcast %"struct.boost::graph_detail::forward_container_tag"* %this1 to i8**
  store i8* %0, i8** %1
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail24reversible_container_tagC2Ev(%"struct.boost::graph_detail::reversible_container_tag"* %this, i8** %vtt) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::reversible_container_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"struct.boost::graph_detail::reversible_container_tag"* %this, %"struct.boost::graph_detail::reversible_container_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"struct.boost::graph_detail::reversible_container_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = load i8** %vtt2
  %1 = bitcast %"struct.boost::graph_detail::reversible_container_tag"* %this1 to i8**
  store i8* %0, i8** %1
  %2 = getelementptr inbounds i8** %vtt2, i64 1
  %3 = load i8** %2
  %4 = bitcast %"struct.boost::graph_detail::reversible_container_tag"* %this1 to i8**
  %vtable = load i8** %4
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -16
  %5 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %5
  %6 = bitcast %"struct.boost::graph_detail::reversible_container_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %6, i32 %vbase.offset
  %7 = bitcast i8* %add.ptr to i8**
  store i8* %3, i8** %7
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail12sequence_tagC2Ev(%"struct.boost::graph_detail::sequence_tag"* %this, i8** %vtt) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::sequence_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"struct.boost::graph_detail::sequence_tag"* %this, %"struct.boost::graph_detail::sequence_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"struct.boost::graph_detail::sequence_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = load i8** %vtt2
  %1 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8**
  store i8* %0, i8** %1
  %2 = getelementptr inbounds i8** %vtt2, i64 1
  %3 = load i8** %2
  %4 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8**
  %vtable = load i8** %4
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -16
  %5 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %5
  %6 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %6, i32 %vbase.offset
  %7 = bitcast i8* %add.ptr to i8**
  store i8* %3, i8** %7
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail27back_insertion_sequence_tagC2Ev(%"struct.boost::graph_detail::back_insertion_sequence_tag"* %this, i8** %vtt) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::back_insertion_sequence_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this, %"struct.boost::graph_detail::back_insertion_sequence_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = load i8** %vtt2
  %1 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8**
  store i8* %0, i8** %1
  %2 = getelementptr inbounds i8** %vtt2, i64 1
  %3 = load i8** %2
  %4 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8**
  %vtable = load i8** %4
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -20
  %5 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %5
  %6 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %6, i32 %vbase.offset
  %7 = bitcast i8* %add.ptr to i8**
  store i8* %3, i8** %7
  %8 = getelementptr inbounds i8** %vtt2, i64 2
  %9 = load i8** %8
  %10 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8**
  %vtable3 = load i8** %10
  %vbase.offset.ptr4 = getelementptr i8* %vtable3, i64 -16
  %11 = bitcast i8* %vbase.offset.ptr4 to i32*
  %vbase.offset5 = load i32* %11
  %12 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8*
  %add.ptr6 = getelementptr inbounds i8* %12, i32 %vbase.offset5
  %13 = bitcast i8* %add.ptr6 to i8**
  store i8* %9, i8** %13
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail21forward_container_tagC2ERKS1_(%"struct.boost::graph_detail::forward_container_tag"* %this, i8** %vtt, %"struct.boost::graph_detail::forward_container_tag"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::forward_container_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  %.addr = alloca %"struct.boost::graph_detail::forward_container_tag"*, align 4
  store %"struct.boost::graph_detail::forward_container_tag"* %this, %"struct.boost::graph_detail::forward_container_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  store %"struct.boost::graph_detail::forward_container_tag"* %0, %"struct.boost::graph_detail::forward_container_tag"** %.addr, align 4
  %this1 = load %"struct.boost::graph_detail::forward_container_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %1 = load i8** %vtt2
  %2 = bitcast %"struct.boost::graph_detail::forward_container_tag"* %this1 to i8**
  store i8* %1, i8** %2
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail12sequence_tagC2ERKS1_(%"struct.boost::graph_detail::sequence_tag"* %this, i8** %vtt, %"struct.boost::graph_detail::sequence_tag"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::sequence_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  %.addr = alloca %"struct.boost::graph_detail::sequence_tag"*, align 4
  store %"struct.boost::graph_detail::sequence_tag"* %this, %"struct.boost::graph_detail::sequence_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  store %"struct.boost::graph_detail::sequence_tag"* %0, %"struct.boost::graph_detail::sequence_tag"** %.addr, align 4
  %this1 = load %"struct.boost::graph_detail::sequence_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %1 = load i8** %vtt2
  %2 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8**
  store i8* %1, i8** %2
  %3 = getelementptr inbounds i8** %vtt2, i64 1
  %4 = load i8** %3
  %5 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8**
  %vtable = load i8** %5
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -16
  %6 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %6
  %7 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %7, i32 %vbase.offset
  %8 = bitcast i8* %add.ptr to i8**
  store i8* %4, i8** %8
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE9push_backERKS7_(%"class.std::list.21"* %this, %"class.boost::detail::stored_edge_property"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %agg.tmp = alloca %"struct.std::_List_iterator", align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__x, %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_iterator"* sret %agg.tmp, %"class.std::list.21"* %this1)
  %0 = load %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE9_M_insertESt14_List_iteratorIS7_ERKS7_(%"class.std::list.21"* %this1, %"struct.std::_List_iterator"* byval align 4 %agg.tmp, %"class.boost::detail::stored_edge_property"* %0)
  ret void
}

define linkonce_odr void @_ZSt9make_pairISt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEbESt4pairIT_T0_ESB_SC_(%"struct.std::pair.68"* noalias sret %agg.result, %"struct.std::_List_iterator"* byval align 4 %__x, i1 zeroext %__y) inlinehint {
entry:
  %__y.addr = alloca i8, align 1
  %frombool = zext i1 %__y to i8
  store i8 %frombool, i8* %__y.addr, align 1
  call void @_ZNSt4pairISt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEbEC1ERKS9_RKb(%"struct.std::pair.68"* %agg.result, %"struct.std::_List_iterator"* %__x, i8* %__y.addr)
  ret void
}

define linkonce_odr void @_ZN5boost5priorISt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEEET_SA_(%"struct.std::_List_iterator"* noalias sret %agg.result, %"struct.std::_List_iterator"* byval align 4 %x) inlinehint {
entry:
  %call = call %"struct.std::_List_iterator"* @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEmmEv(%"struct.std::_List_iterator"* %x)
  %0 = bitcast %"struct.std::_List_iterator"* %agg.result to i8*
  %1 = bitcast %"struct.std::_List_iterator"* %call to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr %"struct.std::_List_iterator"* @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEmmEv(%"struct.std::_List_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_iterator"*, align 4
  store %"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_List_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %_M_prev = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %0, i32 0, i32 1
  %1 = load %"struct.std::__detail::_List_node_base"** %_M_prev, align 4
  %_M_node2 = getelementptr inbounds %"struct.std::_List_iterator"* %this1, i32 0, i32 0
  store %"struct.std::__detail::_List_node_base"* %1, %"struct.std::__detail::_List_node_base"** %_M_node2, align 4
  ret %"struct.std::_List_iterator"* %this1
}

define linkonce_odr void @_ZNSt4pairISt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEbEC1ERKS9_RKb(%"struct.std::pair.68"* %this, %"struct.std::_List_iterator"* %__a, i8* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.68"*, align 4
  %__a.addr = alloca %"struct.std::_List_iterator"*, align 4
  %__b.addr = alloca i8*, align 4
  store %"struct.std::pair.68"* %this, %"struct.std::pair.68"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %__a, %"struct.std::_List_iterator"** %__a.addr, align 4
  store i8* %__b, i8** %__b.addr, align 4
  %this1 = load %"struct.std::pair.68"** %this.addr
  %0 = load i8** %__b.addr
  %1 = load %"struct.std::_List_iterator"** %__a.addr
  call void @_ZNSt4pairISt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEbEC2ERKS9_RKb(%"struct.std::pair.68"* %this1, %"struct.std::_List_iterator"* %1, i8* %0)
  ret void
}

define linkonce_odr void @_ZNSt4pairISt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEbEC2ERKS9_RKb(%"struct.std::pair.68"* %this, %"struct.std::_List_iterator"* %__a, i8* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.68"*, align 4
  %__a.addr = alloca %"struct.std::_List_iterator"*, align 4
  %__b.addr = alloca i8*, align 4
  store %"struct.std::pair.68"* %this, %"struct.std::pair.68"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %__a, %"struct.std::_List_iterator"** %__a.addr, align 4
  store i8* %__b, i8** %__b.addr, align 4
  %this1 = load %"struct.std::pair.68"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.68"* %this1, i32 0, i32 0
  %0 = load %"struct.std::_List_iterator"** %__a.addr, align 4
  %1 = bitcast %"struct.std::_List_iterator"* %first to i8*
  %2 = bitcast %"struct.std::_List_iterator"* %0 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  %second = getelementptr inbounds %"struct.std::pair.68"* %this1, i32 0, i32 1
  %3 = load i8** %__b.addr, align 4
  %4 = load i8* %3, align 1
  %tobool = trunc i8 %4 to i1
  %frombool = zext i1 %tobool to i8
  store i8 %frombool, i8* %second, align 1
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE9_M_insertESt14_List_iteratorIS7_ERKS7_(%"class.std::list.21"* %this, %"struct.std::_List_iterator"* byval align 4 %__position, %"class.boost::detail::stored_edge_property"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__tmp = alloca %"struct.std::_List_node"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__x, %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  %call = call %"struct.std::_List_node"* @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE14_M_create_nodeERKS7_(%"class.std::list.21"* %this1, %"class.boost::detail::stored_edge_property"* %0)
  store %"struct.std::_List_node"* %call, %"struct.std::_List_node"** %__tmp, align 4
  %1 = load %"struct.std::_List_node"** %__tmp, align 4
  %2 = bitcast %"struct.std::_List_node"* %1 to %"struct.std::__detail::_List_node_base"*
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %__position, i32 0, i32 0
  %3 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  call void @_ZNSt8__detail15_List_node_base7_M_hookEPS0_(%"struct.std::__detail::_List_node_base"* %2, %"struct.std::__detail::_List_node_base"* %3) nounwind
  ret void
}

define linkonce_odr %"struct.std::_List_node"* @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE14_M_create_nodeERKS7_(%"class.std::list.21"* %this, %"class.boost::detail::stored_edge_property"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__p = alloca %"struct.std::_List_node"*, align 4
  %temp.lvalue = alloca %"class.std::allocator.61", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__x, %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %call = call %"struct.std::_List_node"* @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE11_M_get_nodeEv(%"class.std::_List_base.22"* %0)
  store %"struct.std::_List_node"* %call, %"struct.std::_List_node"** %__p, align 4
  %1 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  invoke void @_ZNKSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE19_M_get_Tp_allocatorEv(%"class.std::allocator.61"* sret %temp.lvalue, %"class.std::_List_base.22"* %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %2 = bitcast %"class.std::allocator.61"* %temp.lvalue to %"class.__gnu_cxx::new_allocator.62"*
  %3 = load %"struct.std::_List_node"** %__p, align 4
  %_M_data = getelementptr inbounds %"struct.std::_List_node"* %3, i32 0, i32 1
  %call4 = invoke %"class.boost::detail::stored_edge_property"* @_ZSt11__addressofIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEPT_RS8_(%"class.boost::detail::stored_edge_property"* %_M_data)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %invoke.cont
  %4 = load %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  invoke void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEE9constructEPS8_RKS8_(%"class.__gnu_cxx::new_allocator.62"* %2, %"class.boost::detail::stored_edge_property"* %call4, %"class.boost::detail::stored_edge_property"* %4)
          to label %invoke.cont5 unwind label %lpad2

invoke.cont5:                                     ; preds = %invoke.cont3
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %temp.lvalue) nounwind
  br label %try.cont

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  br label %catch

lpad2:                                            ; preds = %invoke.cont3, %invoke.cont
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %9 = extractvalue { i8*, i32 } %8, 0
  store i8* %9, i8** %exn.slot
  %10 = extractvalue { i8*, i32 } %8, 1
  store i32 %10, i32* %ehselector.slot
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %temp.lvalue) nounwind
  br label %catch

catch:                                            ; preds = %lpad2, %lpad
  %exn = load i8** %exn.slot
  %11 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %12 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %13 = load %"struct.std::_List_node"** %__p, align 4
  invoke void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE11_M_put_nodeEPSt10_List_nodeIS7_E(%"class.std::_List_base.22"* %12, %"struct.std::_List_node"* %13)
          to label %invoke.cont7 unwind label %lpad6

invoke.cont7:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad6

lpad6:                                            ; preds = %invoke.cont7, %catch
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %15 = extractvalue { i8*, i32 } %14, 0
  store i8* %15, i8** %exn.slot
  %16 = extractvalue { i8*, i32 } %14, 1
  store i32 %16, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont8 unwind label %terminate.lpad

invoke.cont8:                                     ; preds = %lpad6
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont5
  %17 = load %"struct.std::_List_node"** %__p, align 4
  ret %"struct.std::_List_node"* %17

eh.resume:                                        ; preds = %invoke.cont8
  %exn9 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn9, 0
  %lpad.val10 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val10

terminate.lpad:                                   ; preds = %lpad6
  %18 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont7
  unreachable
}

declare void @_ZNSt8__detail15_List_node_base7_M_hookEPS0_(%"struct.std::__detail::_List_node_base"*, %"struct.std::__detail::_List_node_base"*) nounwind

define linkonce_odr %"struct.std::_List_node"* @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE11_M_get_nodeEv(%"class.std::_List_base.22"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl to %"class.std::allocator.23"*
  %1 = bitcast %"class.std::allocator.23"* %0 to %"class.__gnu_cxx::new_allocator.24"*
  %call = call %"struct.std::_List_node"* @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.24"* %1, i32 1, i8* null)
  ret %"struct.std::_List_node"* %call
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEE9constructEPS8_RKS8_(%"class.__gnu_cxx::new_allocator.62"* %this, %"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"* %__val) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.62"*, align 4
  %__p.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__val.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.__gnu_cxx::new_allocator.62"* %this, %"class.__gnu_cxx::new_allocator.62"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__val, %"class.boost::detail::stored_edge_property"** %__val.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.62"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  %1 = bitcast %"class.boost::detail::stored_edge_property"* %0 to i8*
  %new.isnull = icmp eq i8* %1, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %2 = bitcast i8* %1 to %"class.boost::detail::stored_edge_property"*
  %3 = load %"class.boost::detail::stored_edge_property"** %__val.addr, align 4
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEC1ERKS6_(%"class.boost::detail::stored_edge_property"* %2, %"class.boost::detail::stored_edge_property"* %3)
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %4 = phi %"class.boost::detail::stored_edge_property"* [ %2, %new.notnull ], [ null, %entry ]
  ret void
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEC1ERKS6_(%"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %x, %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"** %x.addr
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEC2ERKS6_(%"class.boost::detail::stored_edge_property"* %this1, %"class.boost::detail::stored_edge_property"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEC2ERKS6_(%"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"* %x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %x, %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = bitcast %"class.boost::detail::stored_edge_property"* %this1 to %"class.boost::detail::stored_edge"*
  %1 = load %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %2 = bitcast %"class.boost::detail::stored_edge_property"* %1 to %"class.boost::detail::stored_edge"*
  %3 = bitcast %"class.boost::detail::stored_edge"* %0 to i8*
  %4 = bitcast %"class.boost::detail::stored_edge"* %2 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 4, i32 4, i1 false)
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  %5 = load %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %m_property2 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %5, i32 0, i32 1
  call void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEC1ERS5_(%"class.std::auto_ptr"* %m_property, %"class.std::auto_ptr"* %m_property2) nounwind
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEC1ERS5_(%"class.std::auto_ptr"* %this, %"class.std::auto_ptr"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__a.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"class.std::auto_ptr"* %__a, %"class.std::auto_ptr"** %__a.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %0 = load %"class.std::auto_ptr"** %__a.addr
  call void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEC2ERS5_(%"class.std::auto_ptr"* %this1, %"class.std::auto_ptr"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEC2ERS5_(%"class.std::auto_ptr"* %this, %"class.std::auto_ptr"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__a.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"class.std::auto_ptr"* %__a, %"class.std::auto_ptr"** %__a.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"class.std::auto_ptr"** %__a.addr, align 4
  %call = call %"struct.boost::property"* @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEE7releaseEv(%"class.std::auto_ptr"* %0) nounwind
  store %"struct.boost::property"* %call, %"struct.boost::property"** %_M_ptr, align 4
  ret void
}

define linkonce_odr %"struct.boost::property"* @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEE7releaseEv(%"class.std::auto_ptr"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__tmp = alloca %"struct.boost::property"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::property"** %_M_ptr, align 4
  store %"struct.boost::property"* %0, %"struct.boost::property"** %__tmp, align 4
  %_M_ptr2 = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  store %"struct.boost::property"* null, %"struct.boost::property"** %_M_ptr2, align 4
  %1 = load %"struct.boost::property"** %__tmp, align 4
  ret %"struct.boost::property"* %1
}

define linkonce_odr %"struct.std::_List_node"* @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.24"* %this, i32 %__n, i8*) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  %__n.addr = alloca i32, align 4
  %.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %0, i8** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  %1 = load i32* %__n.addr, align 4
  %call = call i32 @_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.24"* %this1) nounwind
  %cmp = icmp ugt i32 %1, %call
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt17__throw_bad_allocv() noreturn
  unreachable

if.end:                                           ; preds = %entry
  %2 = load i32* %__n.addr, align 4
  %mul = mul i32 %2, 16
  %call2 = call noalias i8* @_Znwj(i32 %mul)
  %3 = bitcast i8* %call2 to %"struct.std::_List_node"*
  ret %"struct.std::_List_node"* %3
}

define linkonce_odr i32 @_ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.24"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  ret i32 268435455
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRSt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEERbNS0_9null_typeESD_SD_SD_SD_SD_SD_SD_EC1ESB_SC_(%"class.boost::tuples::tuple.65"* %this, %"struct.std::_List_iterator"* %t0, i8* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.65"*, align 4
  %t0.addr = alloca %"struct.std::_List_iterator"*, align 4
  %t1.addr = alloca i8*, align 4
  store %"class.boost::tuples::tuple.65"* %this, %"class.boost::tuples::tuple.65"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %t0, %"struct.std::_List_iterator"** %t0.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.65"** %this.addr
  %0 = load i8** %t1.addr
  %1 = load %"struct.std::_List_iterator"** %t0.addr
  call void @_ZN5boost6tuples5tupleIRSt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEERbNS0_9null_typeESD_SD_SD_SD_SD_SD_SD_EC2ESB_SC_(%"class.boost::tuples::tuple.65"* %this1, %"struct.std::_List_iterator"* %1, i8* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRSt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEERbNS0_9null_typeESD_SD_SD_SD_SD_SD_SD_EC2ESB_SC_(%"class.boost::tuples::tuple.65"* %this, %"struct.std::_List_iterator"* %t0, i8* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.65"*, align 4
  %t0.addr = alloca %"struct.std::_List_iterator"*, align 4
  %t1.addr = alloca i8*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp2 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp3 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp4 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp5 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp6 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp7 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp8 = alloca %"struct.boost::tuples::null_type", align 1
  store %"class.boost::tuples::tuple.65"* %this, %"class.boost::tuples::tuple.65"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %t0, %"struct.std::_List_iterator"** %t0.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.65"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.65"* %this1 to %"struct.boost::tuples::cons.66"*
  %1 = load %"struct.std::_List_iterator"** %t0.addr, align 4
  %2 = load i8** %t1.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp2)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp3)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp4)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp5)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp6)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp7)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp8)
  call void @_ZN5boost6tuples4consIRSt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEENS1_IRbNS0_9null_typeEEEEC2ISA_bKSD_SH_SH_SH_SH_SH_SH_SH_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.66"* %0, %"struct.std::_List_iterator"* %1, i8* %2, %"struct.boost::tuples::null_type"* %ref.tmp, %"struct.boost::tuples::null_type"* %ref.tmp2, %"struct.boost::tuples::null_type"* %ref.tmp3, %"struct.boost::tuples::null_type"* %ref.tmp4, %"struct.boost::tuples::null_type"* %ref.tmp5, %"struct.boost::tuples::null_type"* %ref.tmp6, %"struct.boost::tuples::null_type"* %ref.tmp7, %"struct.boost::tuples::null_type"* %ref.tmp8)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRSt14_List_iteratorINS_6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEENS1_IRbNS0_9null_typeEEEEC2ISA_bKSD_SH_SH_SH_SH_SH_SH_SH_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.66"* %this, %"struct.std::_List_iterator"* %t1, i8* %t2, %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"* %t10) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.66"*, align 4
  %t1.addr = alloca %"struct.std::_List_iterator"*, align 4
  %t2.addr = alloca i8*, align 4
  %t3.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t4.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t5.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t6.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t7.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t8.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t9.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t10.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  store %"struct.boost::tuples::cons.66"* %this, %"struct.boost::tuples::cons.66"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %t1, %"struct.std::_List_iterator"** %t1.addr, align 4
  store i8* %t2, i8** %t2.addr, align 4
  store %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"** %t3.addr, align 4
  store %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"** %t4.addr, align 4
  store %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"** %t5.addr, align 4
  store %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"** %t6.addr, align 4
  store %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"** %t7.addr, align 4
  store %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"** %t8.addr, align 4
  store %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"** %t9.addr, align 4
  store %"struct.boost::tuples::null_type"* %t10, %"struct.boost::tuples::null_type"** %t10.addr, align 4
  %this1 = load %"struct.boost::tuples::cons.66"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::tuples::cons.66"* %this1, i32 0, i32 0
  %1 = load %"struct.std::_List_iterator"** %t1.addr, align 4
  store %"struct.std::_List_iterator"* %1, %"struct.std::_List_iterator"** %0, align 4
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.66"* %this1, i32 0, i32 1
  %2 = load i8** %t2.addr, align 4
  %3 = load %"struct.boost::tuples::null_type"** %t3.addr, align 4
  %4 = load %"struct.boost::tuples::null_type"** %t4.addr, align 4
  %5 = load %"struct.boost::tuples::null_type"** %t5.addr, align 4
  %6 = load %"struct.boost::tuples::null_type"** %t6.addr, align 4
  %7 = load %"struct.boost::tuples::null_type"** %t7.addr, align 4
  %8 = load %"struct.boost::tuples::null_type"** %t8.addr, align 4
  %9 = load %"struct.boost::tuples::null_type"** %t9.addr, align 4
  %10 = load %"struct.boost::tuples::null_type"** %t10.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples4consIRbNS0_9null_typeEEC1IbEERT_RKS3_S9_S9_S9_S9_S9_S9_S9_S9_(%"struct.boost::tuples::cons.67"* %tail, i8* %2, %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRbNS0_9null_typeEEC1IbEERT_RKS3_S9_S9_S9_S9_S9_S9_S9_S9_(%"struct.boost::tuples::cons.67"* %this, i8* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.67"*, align 4
  %t1.addr = alloca i8*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.67"* %this, %"struct.boost::tuples::cons.67"** %this.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.67"** %this.addr
  %9 = load i8** %t1.addr
  %10 = load %"struct.boost::tuples::null_type"** %.addr
  %11 = load %"struct.boost::tuples::null_type"** %.addr1
  %12 = load %"struct.boost::tuples::null_type"** %.addr2
  %13 = load %"struct.boost::tuples::null_type"** %.addr3
  %14 = load %"struct.boost::tuples::null_type"** %.addr4
  %15 = load %"struct.boost::tuples::null_type"** %.addr5
  %16 = load %"struct.boost::tuples::null_type"** %.addr6
  %17 = load %"struct.boost::tuples::null_type"** %.addr7
  %18 = load %"struct.boost::tuples::null_type"** %.addr8
  call void @_ZN5boost6tuples4consIRbNS0_9null_typeEEC2IbEERT_RKS3_S9_S9_S9_S9_S9_S9_S9_S9_(%"struct.boost::tuples::cons.67"* %this9, i8* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %11, %"struct.boost::tuples::null_type"* %12, %"struct.boost::tuples::null_type"* %13, %"struct.boost::tuples::null_type"* %14, %"struct.boost::tuples::null_type"* %15, %"struct.boost::tuples::null_type"* %16, %"struct.boost::tuples::null_type"* %17, %"struct.boost::tuples::null_type"* %18)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRbNS0_9null_typeEEC2IbEERT_RKS3_S9_S9_S9_S9_S9_S9_S9_S9_(%"struct.boost::tuples::cons.67"* %this, i8* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.67"*, align 4
  %t1.addr = alloca i8*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.67"* %this, %"struct.boost::tuples::cons.67"** %this.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.67"** %this.addr
  %9 = getelementptr inbounds %"struct.boost::tuples::cons.67"* %this9, i32 0, i32 0
  %10 = load i8** %t1.addr, align 4
  store i8* %10, i8** %9, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE6insertEN9__gnu_cxx17__normal_iteratorIPSE_SG_EEjRKSE_(%"class.std::vector"* %this, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__position, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__position to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %2 = load i32* %__n.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPSE_SG_EEjRKSE_(%"class.std::vector"* %this1, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp, i32 %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE3endEv(%"class.__gnu_cxx::__normal_iterator.69"* noalias sret %agg.result, %"class.std::vector"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEEC1ERKSG_(%"class.__gnu_cxx::__normal_iterator.69"* %agg.result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE15_M_erase_at_endEPSE_(%"class.std::vector"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__pos) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__pos.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__pos, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__pos.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__pos.addr, align 4
  %1 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %3 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call = call %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %3)
  call void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvT_SG_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"class.std::allocator.0"* %call)
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__pos.addr, align 4
  %5 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %5, i32 0, i32 0
  %_M_finish3 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %4, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish3, align 4
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEEC1ERKSG_(%"class.__gnu_cxx::__normal_iterator.69"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__i) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  %__i.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.__gnu_cxx::__normal_iterator.69"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__i, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.69"** %this.addr
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*** %__i.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEEC2ERKSG_(%"class.__gnu_cxx::__normal_iterator.69"* %this1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %0)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEEC2ERKSG_(%"class.__gnu_cxx::__normal_iterator.69"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__i) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  %__i.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.__gnu_cxx::__normal_iterator.69"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__i, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.69"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*** %__i.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %0, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_current, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPSE_SG_EEjRKSE_(%"class.std::vector"* %this, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__position, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__x_copy = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex", align 4
  %__elems_after = alloca i32, align 4
  %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %__old_finish = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__len = alloca i32, align 4
  %__elems_before = alloca i32, align 4
  %ref.tmp61 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %__new_start = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__new_finish = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ne i32 %0, 0
  br i1 %cmp, label %if.then, label %if.end123

if.then:                                          ; preds = %entry
  %1 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 2
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  %3 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %3, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %4 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 12
  %5 = load i32* %__n.addr, align 4
  %cmp3 = icmp uge i32 %sub.ptr.div, %5
  br i1 %cmp3, label %if.then4, label %if.else59

if.then4:                                         ; preds = %if.then
  %6 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC1ERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %6)
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE3endEv(%"class.__gnu_cxx::__normal_iterator.69"* sret %ref.tmp, %"class.std::vector"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.then4
  %call = invoke i32 @_ZN9__gnu_cxxmiIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSN_SQ_(%"class.__gnu_cxx::__normal_iterator.69"* %ref.tmp, %"class.__gnu_cxx::__normal_iterator.69"* %__position)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont
  store i32 %call, i32* %__elems_after, align 4
  %7 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base"* %7, i32 0, i32 0
  %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl6, i32 0, i32 1
  %8 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish7, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %8, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  %9 = load i32* %__elems_after, align 4
  %10 = load i32* %__n.addr, align 4
  %cmp8 = icmp ugt i32 %9, %10
  br i1 %cmp8, label %if.then9, label %if.else

if.then9:                                         ; preds = %invoke.cont5
  %11 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl10 = getelementptr inbounds %"struct.std::_Vector_base"* %11, i32 0, i32 0
  %_M_finish11 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl10, i32 0, i32 1
  %12 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish11, align 4
  %13 = load i32* %__n.addr, align 4
  %idx.neg = sub i32 0, %13
  %add.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %12, i32 %idx.neg
  %14 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl12 = getelementptr inbounds %"struct.std::_Vector_base"* %14, i32 0, i32 0
  %_M_finish13 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl12, i32 0, i32 1
  %15 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish13, align 4
  %16 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl14 = getelementptr inbounds %"struct.std::_Vector_base"* %16, i32 0, i32 0
  %_M_finish15 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl14, i32 0, i32 1
  %17 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish15, align 4
  %18 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call17 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %18)
          to label %invoke.cont16 unwind label %lpad

invoke.cont16:                                    ; preds = %if.then9
  %call19 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_SaISE_EET0_T_SI_SH_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %15, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %17, %"class.std::allocator.0"* %call17)
          to label %invoke.cont18 unwind label %lpad

invoke.cont18:                                    ; preds = %invoke.cont16
  %19 = load i32* %__n.addr, align 4
  %20 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl20 = getelementptr inbounds %"struct.std::_Vector_base"* %20, i32 0, i32 0
  %_M_finish21 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl20, i32 0, i32 1
  %21 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish21, align 4
  %add.ptr22 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %21, i32 %19
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr22, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish21, align 4
  %call24 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %__position)
          to label %invoke.cont23 unwind label %lpad

invoke.cont23:                                    ; preds = %invoke.cont18
  %22 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %call24
  %23 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  %24 = load i32* %__n.addr, align 4
  %idx.neg25 = sub i32 0, %24
  %add.ptr26 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %23, i32 %idx.neg25
  %25 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  %call28 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt13copy_backwardIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_ET0_T_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %22, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr26, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %25)
          to label %invoke.cont27 unwind label %lpad

invoke.cont27:                                    ; preds = %invoke.cont23
  %call30 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %__position)
          to label %invoke.cont29 unwind label %lpad

invoke.cont29:                                    ; preds = %invoke.cont27
  %26 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %call30
  %call32 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %__position)
          to label %invoke.cont31 unwind label %lpad

invoke.cont31:                                    ; preds = %invoke.cont29
  %27 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %call32
  %28 = load i32* %__n.addr, align 4
  %add.ptr33 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %27, i32 %28
  invoke void @_ZSt4fillIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvT_SG_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %26, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr33, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy)
          to label %invoke.cont34 unwind label %lpad

invoke.cont34:                                    ; preds = %invoke.cont31
  br label %if.end

lpad:                                             ; preds = %invoke.cont55, %invoke.cont50, %invoke.cont48, %invoke.cont44, %invoke.cont39, %invoke.cont37, %if.else, %invoke.cont31, %invoke.cont29, %invoke.cont27, %invoke.cont23, %invoke.cont18, %invoke.cont16, %if.then9, %invoke.cont, %if.then4
  %29 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %30 = extractvalue { i8*, i32 } %29, 0
  store i8* %30, i8** %exn.slot
  %31 = extractvalue { i8*, i32 } %29, 1
  store i32 %31, i32* %ehselector.slot
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy)
          to label %invoke.cont58 unwind label %terminate.lpad

if.else:                                          ; preds = %invoke.cont5
  %32 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl35 = getelementptr inbounds %"struct.std::_Vector_base"* %32, i32 0, i32 0
  %_M_finish36 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl35, i32 0, i32 1
  %33 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish36, align 4
  %34 = load i32* %__n.addr, align 4
  %35 = load i32* %__elems_after, align 4
  %sub = sub i32 %34, %35
  %36 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call38 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %36)
          to label %invoke.cont37 unwind label %lpad

invoke.cont37:                                    ; preds = %if.else
  invoke void @_ZSt24__uninitialized_fill_n_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEjSE_SE_EvT_T0_RKT1_RSaIT2_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %33, i32 %sub, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy, %"class.std::allocator.0"* %call38)
          to label %invoke.cont39 unwind label %lpad

invoke.cont39:                                    ; preds = %invoke.cont37
  %37 = load i32* %__n.addr, align 4
  %38 = load i32* %__elems_after, align 4
  %sub40 = sub i32 %37, %38
  %39 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl41 = getelementptr inbounds %"struct.std::_Vector_base"* %39, i32 0, i32 0
  %_M_finish42 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl41, i32 0, i32 1
  %40 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish42, align 4
  %add.ptr43 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %40, i32 %sub40
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr43, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish42, align 4
  %call45 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %__position)
          to label %invoke.cont44 unwind label %lpad

invoke.cont44:                                    ; preds = %invoke.cont39
  %41 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %call45
  %42 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  %43 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl46 = getelementptr inbounds %"struct.std::_Vector_base"* %43, i32 0, i32 0
  %_M_finish47 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl46, i32 0, i32 1
  %44 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish47, align 4
  %45 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call49 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %45)
          to label %invoke.cont48 unwind label %lpad

invoke.cont48:                                    ; preds = %invoke.cont44
  %call51 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_SaISE_EET0_T_SI_SH_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %41, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %42, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %44, %"class.std::allocator.0"* %call49)
          to label %invoke.cont50 unwind label %lpad

invoke.cont50:                                    ; preds = %invoke.cont48
  %46 = load i32* %__elems_after, align 4
  %47 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl52 = getelementptr inbounds %"struct.std::_Vector_base"* %47, i32 0, i32 0
  %_M_finish53 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl52, i32 0, i32 1
  %48 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish53, align 4
  %add.ptr54 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %48, i32 %46
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr54, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish53, align 4
  %call56 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %__position)
          to label %invoke.cont55 unwind label %lpad

invoke.cont55:                                    ; preds = %invoke.cont50
  %49 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %call56
  %50 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  invoke void @_ZSt4fillIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvT_SG_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %49, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %50, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy)
          to label %invoke.cont57 unwind label %lpad

invoke.cont57:                                    ; preds = %invoke.cont55
  br label %if.end

if.end:                                           ; preds = %invoke.cont57, %invoke.cont34
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy)
  br label %if.end122

invoke.cont58:                                    ; preds = %lpad
  br label %eh.resume

if.else59:                                        ; preds = %if.then
  %51 = load i32* %__n.addr, align 4
  %call60 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_M_check_lenEjPKc(%"class.std::vector"* %this1, i32 %51, i8* getelementptr inbounds ([23 x i8]* @.str29, i32 0, i32 0))
  store i32 %call60, i32* %__len, align 4
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.69"* sret %ref.tmp61, %"class.std::vector"* %this1)
  %call62 = call i32 @_ZN9__gnu_cxxmiIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSN_SQ_(%"class.__gnu_cxx::__normal_iterator.69"* %__position, %"class.__gnu_cxx::__normal_iterator.69"* %ref.tmp61)
  store i32 %call62, i32* %__elems_before, align 4
  %52 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %53 = load i32* %__len, align 4
  %call63 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE11_M_allocateEj(%"struct.std::_Vector_base"* %52, i32 %53)
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call63, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %54 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %54, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %55 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %56 = load i32* %__elems_before, align 4
  %add.ptr64 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %55, i32 %56
  %57 = load i32* %__n.addr, align 4
  %58 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %59 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call67 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %59)
          to label %invoke.cont66 unwind label %lpad65

invoke.cont66:                                    ; preds = %if.else59
  invoke void @_ZSt24__uninitialized_fill_n_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEjSE_SE_EvT_T0_RKT1_RSaIT2_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr64, i32 %57, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %58, %"class.std::allocator.0"* %call67)
          to label %invoke.cont68 unwind label %lpad65

invoke.cont68:                                    ; preds = %invoke.cont66
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* null, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %60 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl69 = getelementptr inbounds %"struct.std::_Vector_base"* %60, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl69, i32 0, i32 0
  %61 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %call71 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %__position)
          to label %invoke.cont70 unwind label %lpad65

invoke.cont70:                                    ; preds = %invoke.cont68
  %62 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %call71
  %63 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %64 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call73 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %64)
          to label %invoke.cont72 unwind label %lpad65

invoke.cont72:                                    ; preds = %invoke.cont70
  %call75 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_SaISE_EET0_T_SI_SH_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %61, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %62, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %63, %"class.std::allocator.0"* %call73)
          to label %invoke.cont74 unwind label %lpad65

invoke.cont74:                                    ; preds = %invoke.cont72
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call75, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %65 = load i32* %__n.addr, align 4
  %66 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %add.ptr76 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %66, i32 %65
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr76, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %call78 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %__position)
          to label %invoke.cont77 unwind label %lpad65

invoke.cont77:                                    ; preds = %invoke.cont74
  %67 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %call78
  %68 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl79 = getelementptr inbounds %"struct.std::_Vector_base"* %68, i32 0, i32 0
  %_M_finish80 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl79, i32 0, i32 1
  %69 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish80, align 4
  %70 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %71 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call82 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %71)
          to label %invoke.cont81 unwind label %lpad65

invoke.cont81:                                    ; preds = %invoke.cont77
  %call84 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_SaISE_EET0_T_SI_SH_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %67, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %69, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %70, %"class.std::allocator.0"* %call82)
          to label %invoke.cont83 unwind label %lpad65

invoke.cont83:                                    ; preds = %invoke.cont81
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call84, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  br label %try.cont

lpad65:                                           ; preds = %invoke.cont81, %invoke.cont77, %invoke.cont74, %invoke.cont72, %invoke.cont70, %invoke.cont68, %invoke.cont66, %if.else59
  %72 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %73 = extractvalue { i8*, i32 } %72, 0
  store i8* %73, i8** %exn.slot
  %74 = extractvalue { i8*, i32 } %72, 1
  store i32 %74, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad65
  %exn = load i8** %exn.slot
  %75 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %76 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %tobool = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %76, null
  br i1 %tobool, label %if.else93, label %if.then85

if.then85:                                        ; preds = %catch
  %77 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %78 = load i32* %__elems_before, align 4
  %add.ptr86 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %77, i32 %78
  %79 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %80 = load i32* %__elems_before, align 4
  %add.ptr87 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %79, i32 %80
  %81 = load i32* %__n.addr, align 4
  %add.ptr88 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr87, i32 %81
  %82 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call91 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %82)
          to label %invoke.cont90 unwind label %lpad89

invoke.cont90:                                    ; preds = %if.then85
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvT_SG_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr86, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr88, %"class.std::allocator.0"* %call91)
          to label %invoke.cont92 unwind label %lpad89

invoke.cont92:                                    ; preds = %invoke.cont90
  br label %if.end97

lpad89:                                           ; preds = %invoke.cont98, %if.end97, %invoke.cont94, %if.else93, %invoke.cont90, %if.then85
  %83 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %84 = extractvalue { i8*, i32 } %83, 0
  store i8* %84, i8** %exn.slot
  %85 = extractvalue { i8*, i32 } %83, 1
  store i32 %85, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont99 unwind label %terminate.lpad

if.else93:                                        ; preds = %catch
  %86 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %87 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %88 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call95 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %88)
          to label %invoke.cont94 unwind label %lpad89

invoke.cont94:                                    ; preds = %if.else93
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvT_SG_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %86, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %87, %"class.std::allocator.0"* %call95)
          to label %invoke.cont96 unwind label %lpad89

invoke.cont96:                                    ; preds = %invoke.cont94
  br label %if.end97

if.end97:                                         ; preds = %invoke.cont96, %invoke.cont92
  %89 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %90 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %91 = load i32* %__len, align 4
  invoke void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE13_M_deallocateEPSE_j(%"struct.std::_Vector_base"* %89, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %90, i32 %91)
          to label %invoke.cont98 unwind label %lpad89

invoke.cont98:                                    ; preds = %if.end97
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad89

invoke.cont99:                                    ; preds = %lpad89
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont83
  %92 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl100 = getelementptr inbounds %"struct.std::_Vector_base"* %92, i32 0, i32 0
  %_M_start101 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl100, i32 0, i32 0
  %93 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start101, align 4
  %94 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl102 = getelementptr inbounds %"struct.std::_Vector_base"* %94, i32 0, i32 0
  %_M_finish103 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl102, i32 0, i32 1
  %95 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish103, align 4
  %96 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call104 = call %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %96)
  call void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvT_SG_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %93, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %95, %"class.std::allocator.0"* %call104)
  %97 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %98 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl105 = getelementptr inbounds %"struct.std::_Vector_base"* %98, i32 0, i32 0
  %_M_start106 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl105, i32 0, i32 0
  %99 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start106, align 4
  %100 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl107 = getelementptr inbounds %"struct.std::_Vector_base"* %100, i32 0, i32 0
  %_M_end_of_storage108 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl107, i32 0, i32 2
  %101 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage108, align 4
  %102 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl109 = getelementptr inbounds %"struct.std::_Vector_base"* %102, i32 0, i32 0
  %_M_start110 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl109, i32 0, i32 0
  %103 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start110, align 4
  %sub.ptr.lhs.cast111 = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %101 to i32
  %sub.ptr.rhs.cast112 = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %103 to i32
  %sub.ptr.sub113 = sub i32 %sub.ptr.lhs.cast111, %sub.ptr.rhs.cast112
  %sub.ptr.div114 = sdiv exact i32 %sub.ptr.sub113, 12
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE13_M_deallocateEPSE_j(%"struct.std::_Vector_base"* %97, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %99, i32 %sub.ptr.div114)
  %104 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %105 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl115 = getelementptr inbounds %"struct.std::_Vector_base"* %105, i32 0, i32 0
  %_M_start116 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl115, i32 0, i32 0
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %104, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start116, align 4
  %106 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %107 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl117 = getelementptr inbounds %"struct.std::_Vector_base"* %107, i32 0, i32 0
  %_M_finish118 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl117, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %106, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish118, align 4
  %108 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %109 = load i32* %__len, align 4
  %add.ptr119 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %108, i32 %109
  %110 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl120 = getelementptr inbounds %"struct.std::_Vector_base"* %110, i32 0, i32 0
  %_M_end_of_storage121 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl120, i32 0, i32 2
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr119, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage121, align 4
  br label %if.end122

if.end122:                                        ; preds = %try.cont, %if.end
  br label %if.end123

if.end123:                                        ; preds = %if.end122, %entry
  ret void

eh.resume:                                        ; preds = %invoke.cont99, %invoke.cont58
  %exn124 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn124, 0
  %lpad.val125 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val125

terminate.lpad:                                   ; preds = %lpad89, %lpad
  %111 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont98
  unreachable
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC1ERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %.addr
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC2ERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  ret void
}

define linkonce_odr i32 @_ZN9__gnu_cxxmiIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSN_SQ_(%"class.__gnu_cxx::__normal_iterator.69"* %__lhs, %"class.__gnu_cxx::__normal_iterator.69"* %__rhs) nounwind inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %__lhs, %"class.__gnu_cxx::__normal_iterator.69"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %__rhs, %"class.__gnu_cxx::__normal_iterator.69"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator.69"** %__lhs.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %0)
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator.69"** %__rhs.addr, align 4
  %call1 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %2)
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %call1
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 12
  ret i32 %sub.ptr.div
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_SaISE_EET0_T_SI_SH_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"class.std::allocator.0"* %__alloc) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__alloc.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  store %"class.std::allocator.0"* %__alloc, %"class.std::allocator.0"** %__alloc.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %3 = load %"class.std::allocator.0"** %__alloc.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_copy_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_SE_ET0_T_SH_SG_RSaIT1_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"class.std::allocator.0"* %3)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt13copy_backwardIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_ET0_T_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result) {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__miter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEENSt11_Miter_baseIT_E13iterator_typeESH_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %call1 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__miter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEENSt11_Miter_baseIT_E13iterator_typeESH_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call2 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt23__copy_move_backward_a2ILb0EPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_ET1_T0_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call2
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.__gnu_cxx::__normal_iterator.69"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.69"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69"* %this1, i32 0, i32 0
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_current
}

define linkonce_odr void @_ZSt4fillIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvT_SG_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value) {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESH_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %call1 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESH_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  call void @_ZSt8__fill_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EN9__gnu_cxx11__enable_ifIXntsr11__is_scalarIT0_EE7__valueEvE6__typeET_SL_RKSI_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret void
}

define linkonce_odr void @_ZSt24__uninitialized_fill_n_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEjSE_SE_EvT_T0_RKT1_RSaIT2_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"class.std::allocator.0"*) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  store %"class.std::allocator.0"* %0, %"class.std::allocator.0"** %.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  call void @_ZSt20uninitialized_fill_nIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEjSE_EvT_T0_RKT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, i32 %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  ret void
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_M_check_lenEjPKc(%"class.std::vector"* %this, i32 %__n, i8* %__s) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__s.addr = alloca i8*, align 4
  %__len = alloca i32, align 4
  %ref.tmp = alloca i32, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %__s, i8** %__s.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %call = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE8max_sizeEv(%"class.std::vector"* %this1)
  %call2 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE4sizeEv(%"class.std::vector"* %this1)
  %sub = sub i32 %call, %call2
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ult i32 %sub, %0
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %1 = load i8** %__s.addr, align 4
  call void @_ZSt20__throw_length_errorPKc(i8* %1) noreturn
  unreachable

if.end:                                           ; preds = %entry
  %call3 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE4sizeEv(%"class.std::vector"* %this1)
  %call4 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE4sizeEv(%"class.std::vector"* %this1)
  store i32 %call4, i32* %ref.tmp, align 4
  %call5 = call i32* @_ZSt3maxIjERKT_S2_S2_(i32* %ref.tmp, i32* %__n.addr)
  %2 = load i32* %call5
  %add = add i32 %call3, %2
  store i32 %add, i32* %__len, align 4
  %3 = load i32* %__len, align 4
  %call6 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE4sizeEv(%"class.std::vector"* %this1)
  %cmp7 = icmp ult i32 %3, %call6
  br i1 %cmp7, label %cond.true, label %lor.lhs.false

lor.lhs.false:                                    ; preds = %if.end
  %4 = load i32* %__len, align 4
  %call8 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE8max_sizeEv(%"class.std::vector"* %this1)
  %cmp9 = icmp ugt i32 %4, %call8
  br i1 %cmp9, label %cond.true, label %cond.false

cond.true:                                        ; preds = %lor.lhs.false, %if.end
  %call10 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE8max_sizeEv(%"class.std::vector"* %this1)
  br label %cond.end

cond.false:                                       ; preds = %lor.lhs.false
  %5 = load i32* %__len, align 4
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32 [ %call10, %cond.true ], [ %5, %cond.false ]
  ret i32 %cond
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.69"* noalias sret %agg.result, %"class.std::vector"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexESt6vectorISF_SaISF_EEEC1ERKSG_(%"class.__gnu_cxx::__normal_iterator.69"* %agg.result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start)
  ret void
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE11_M_allocateEj(%"struct.std::_Vector_base"* %this, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ne i32 %0, 0
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.1"*
  %2 = load i32* %__n.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.1"* %1, i32 %2, i8* null)
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* [ %call, %cond.true ], [ null, %cond.false ]
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %cond
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.1"* %this, i32 %__n, i8*) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  %__n.addr = alloca i32, align 4
  %.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %0, i8** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  %1 = load i32* %__n.addr, align 4
  %call = call i32 @_ZNK9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.1"* %this1) nounwind
  %cmp = icmp ugt i32 %1, %call
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt17__throw_bad_allocv() noreturn
  unreachable

if.end:                                           ; preds = %entry
  %2 = load i32* %__n.addr, align 4
  %mul = mul i32 %2, 12
  %call2 = call noalias i8* @_Znwj(i32 %mul)
  %3 = bitcast i8* %call2 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3
}

define linkonce_odr i32 @_ZNK9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.1"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  ret i32 357913941
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE8max_sizeEv(%"class.std::vector"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call = call %"class.std::allocator.0"* @_ZNKSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %0)
  %1 = bitcast %"class.std::allocator.0"* %call to %"class.__gnu_cxx::new_allocator.1"*
  %call2 = call i32 @_ZNK9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.1"* %1) nounwind
  ret i32 %call2
}

define linkonce_odr %"class.std::allocator.0"* @_ZNKSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl to %"class.std::allocator.0"*
  ret %"class.std::allocator.0"* %0
}

define linkonce_odr void @_ZSt20uninitialized_fill_nIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEjSE_EvT_T0_RKT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load i32* %__n.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  call void @_ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_5listSENS2_4vecSENS2_9directedSENS2_11no_propertyENS2_8propertyINS2_13edge_weight_tEiS9_EES9_S6_EES7_S6_S8_S9_SC_S9_S6_E6config13stored_vertexEjSG_EEvT_T0_RKT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, i32 %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret void
}

define linkonce_odr void @_ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_5listSENS2_4vecSENS2_9directedSENS2_11no_propertyENS2_8propertyINS2_13edge_weight_tEiS9_EES9_S6_EES7_S6_S8_S9_SC_S9_S6_E6config13stored_vertexEjSG_EEvT_T0_RKT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x) align 2 {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__cur = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %1 = load i32* %__n.addr, align 4
  %cmp = icmp ugt i32 %1, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  %call = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt11__addressofIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEPT_RSF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.body
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  invoke void @_ZSt10_ConstructIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvPT_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %invoke.cont
  br label %for.inc

for.inc:                                          ; preds = %invoke.cont1
  %4 = load i32* %__n.addr, align 4
  %dec = add i32 %4, -1
  store i32 %dec, i32* %__n.addr, align 4
  %5 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %5, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  br label %for.cond

lpad:                                             ; preds = %invoke.cont, %for.body
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %9 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %10 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %11 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEvT_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %10, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %11)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad2

for.end:                                          ; preds = %for.cond
  br label %try.cont

lpad2:                                            ; preds = %invoke.cont3, %catch
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %13 = extractvalue { i8*, i32 } %12, 0
  store i8* %13, i8** %exn.slot
  %14 = extractvalue { i8*, i32 } %12, 1
  store i32 %14, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad2
  br label %eh.resume

try.cont:                                         ; preds = %for.end
  ret void

eh.resume:                                        ; preds = %invoke.cont4
  %exn5 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn5, 0
  %lpad.val6 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val6

terminate.lpad:                                   ; preds = %lpad2
  %15 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont3
  unreachable
}

define linkonce_odr void @_ZSt10_ConstructIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvPT_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__p, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value) inlinehint {
entry:
  %__p.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__p, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0 to i8*
  %new.isnull = icmp eq i8* %1, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %2 = bitcast i8* %1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC1ERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %4 = phi %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* [ %2, %new.notnull ], [ null, %entry ]
  ret void
}

define linkonce_odr void @_ZSt8__fill_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EN9__gnu_cxx11__enable_ifIXntsr11__is_scalarIT0_EE7__valueEvE6__typeET_SL_RKSI_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %cmp = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %1
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexaSERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %4, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESH_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__it) inlinehint {
entry:
  %__it.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__it, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt10_Iter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexELb0EE7_S_baseESF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt10_Iter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexELb0EE7_S_baseESF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__it) nounwind align 2 {
entry:
  %__it.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__it, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexaSERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*) inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %3 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config18rand_stored_vertexaSERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %3)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this1
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config18rand_stored_vertexaSERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*) inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %m_out_edges2 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, i32 0, i32 0
  %call = call %"class.std::list.21"* @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEaSERKS9_(%"class.std::list.21"* %m_out_edges, %"class.std::list.21"* %m_out_edges2)
  %m_property = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 1
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %m_property3 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %2, i32 0, i32 1
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1
}

define linkonce_odr %"class.std::list.21"* @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEaSERKS9_(%"class.std::list.21"* %this, %"class.std::list.21"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__x.addr = alloca %"class.std::list.21"*, align 4
  %__first1 = alloca %"struct.std::_List_iterator", align 4
  %__last1 = alloca %"struct.std::_List_iterator", align 4
  %__first2 = alloca %"struct.std::_List_const_iterator", align 4
  %__last2 = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp = alloca %"struct.std::_List_iterator", align 4
  %agg.tmp10 = alloca %"struct.std::_List_iterator", align 4
  %tmp = alloca %"struct.std::_List_iterator", align 4
  %agg.tmp11 = alloca %"struct.std::_List_iterator", align 4
  %agg.tmp12 = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp13 = alloca %"struct.std::_List_const_iterator", align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.std::list.21"* %__x, %"class.std::list.21"** %__x.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = load %"class.std::list.21"** %__x.addr, align 4
  %cmp = icmp ne %"class.std::list.21"* %this1, %0
  br i1 %cmp, label %if.then, label %if.end14

if.then:                                          ; preds = %entry
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5beginEv(%"struct.std::_List_iterator"* sret %__first1, %"class.std::list.21"* %this1)
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_iterator"* sret %__last1, %"class.std::list.21"* %this1)
  %1 = load %"class.std::list.21"** %__x.addr, align 4
  call void @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5beginEv(%"struct.std::_List_const_iterator"* sret %__first2, %"class.std::list.21"* %1)
  %2 = load %"class.std::list.21"** %__x.addr, align 4
  call void @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_const_iterator"* sret %__last2, %"class.std::list.21"* %2)
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %if.then
  %call = call zeroext i1 @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEneERKS8_(%"struct.std::_List_iterator"* %__first1, %"struct.std::_List_iterator"* %__last1)
  br i1 %call, label %land.rhs, label %land.end

land.rhs:                                         ; preds = %for.cond
  %call2 = call zeroext i1 @_ZNKSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEneERKS8_(%"struct.std::_List_const_iterator"* %__first2, %"struct.std::_List_const_iterator"* %__last2)
  br label %land.end

land.end:                                         ; preds = %land.rhs, %for.cond
  %3 = phi i1 [ false, %for.cond ], [ %call2, %land.rhs ]
  br i1 %3, label %for.body, label %for.end

for.body:                                         ; preds = %land.end
  %call3 = call %"class.boost::detail::stored_edge_property"* @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEdeEv(%"struct.std::_List_iterator"* %__first1)
  %call4 = call %"class.boost::detail::stored_edge_property"* @_ZNKSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEdeEv(%"struct.std::_List_const_iterator"* %__first2)
  %call5 = call %"class.boost::detail::stored_edge_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEaSERKS6_(%"class.boost::detail::stored_edge_property"* %call3, %"class.boost::detail::stored_edge_property"* %call4)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %call6 = call %"struct.std::_List_iterator"* @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEppEv(%"struct.std::_List_iterator"* %__first1)
  %call7 = call %"struct.std::_List_const_iterator"* @_ZNSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEppEv(%"struct.std::_List_const_iterator"* %__first2)
  br label %for.cond

for.end:                                          ; preds = %land.end
  %call8 = call zeroext i1 @_ZNKSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEeqERKS8_(%"struct.std::_List_const_iterator"* %__first2, %"struct.std::_List_const_iterator"* %__last2)
  br i1 %call8, label %if.then9, label %if.else

if.then9:                                         ; preds = %for.end
  %4 = bitcast %"struct.std::_List_iterator"* %agg.tmp to i8*
  %5 = bitcast %"struct.std::_List_iterator"* %__first1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  %6 = bitcast %"struct.std::_List_iterator"* %agg.tmp10 to i8*
  %7 = bitcast %"struct.std::_List_iterator"* %__last1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 4, i32 4, i1 false)
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5eraseESt14_List_iteratorIS7_ESB_(%"struct.std::_List_iterator"* sret %tmp, %"class.std::list.21"* %this1, %"struct.std::_List_iterator"* byval align 4 %agg.tmp, %"struct.std::_List_iterator"* byval align 4 %agg.tmp10)
  br label %if.end

if.else:                                          ; preds = %for.end
  %8 = bitcast %"struct.std::_List_iterator"* %agg.tmp11 to i8*
  %9 = bitcast %"struct.std::_List_iterator"* %__last1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %8, i8* %9, i32 4, i32 4, i1 false)
  %10 = bitcast %"struct.std::_List_const_iterator"* %agg.tmp12 to i8*
  %11 = bitcast %"struct.std::_List_const_iterator"* %__first2 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %10, i8* %11, i32 4, i32 4, i1 false)
  %12 = bitcast %"struct.std::_List_const_iterator"* %agg.tmp13 to i8*
  %13 = bitcast %"struct.std::_List_const_iterator"* %__last2 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %12, i8* %13, i32 4, i32 4, i1 false)
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE6insertISt20_List_const_iteratorIS7_EEEvSt14_List_iteratorIS7_ET_SF_(%"class.std::list.21"* %this1, %"struct.std::_List_iterator"* byval align 4 %agg.tmp11, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp12, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp13)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then9
  br label %if.end14

if.end14:                                         ; preds = %if.end, %entry
  ret %"class.std::list.21"* %this1
}

define linkonce_odr zeroext i1 @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEneERKS8_(%"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"* %__x) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_iterator"*, align 4
  %__x.addr = alloca %"struct.std::_List_iterator"*, align 4
  store %"struct.std::_List_iterator"* %this, %"struct.std::_List_iterator"** %this.addr, align 4
  store %"struct.std::_List_iterator"* %__x, %"struct.std::_List_iterator"** %__x.addr, align 4
  %this1 = load %"struct.std::_List_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %1 = load %"struct.std::_List_iterator"** %__x.addr, align 4
  %_M_node2 = getelementptr inbounds %"struct.std::_List_iterator"* %1, i32 0, i32 0
  %2 = load %"struct.std::__detail::_List_node_base"** %_M_node2, align 4
  %cmp = icmp ne %"struct.std::__detail::_List_node_base"* %0, %2
  ret i1 %cmp
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEaSERKS6_(%"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"* %x) align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %x, %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = bitcast %"class.boost::detail::stored_edge_property"* %this1 to %"class.boost::detail::stored_edge"*
  %1 = load %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %2 = bitcast %"class.boost::detail::stored_edge_property"* %1 to %"class.boost::detail::stored_edge"*
  %call = call %"class.boost::detail::stored_edge"* @_ZN5boost6detail11stored_edgeIjEaSERKS2_(%"class.boost::detail::stored_edge"* %0, %"class.boost::detail::stored_edge"* %2)
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  %3 = load %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %m_property2 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %3, i32 0, i32 1
  %call3 = call %"class.std::auto_ptr"* @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEaSERS5_(%"class.std::auto_ptr"* %m_property, %"class.std::auto_ptr"* %m_property2) nounwind
  ret %"class.boost::detail::stored_edge_property"* %this1
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNKSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEdeEv(%"struct.std::_List_const_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_const_iterator"*, align 4
  store %"struct.std::_List_const_iterator"* %this, %"struct.std::_List_const_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_List_const_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_const_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %1 = bitcast %"struct.std::__detail::_List_node_base"* %0 to %"struct.std::_List_node"*
  %_M_data = getelementptr inbounds %"struct.std::_List_node"* %1, i32 0, i32 1
  ret %"class.boost::detail::stored_edge_property"* %_M_data
}

define linkonce_odr zeroext i1 @_ZNKSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEeqERKS8_(%"struct.std::_List_const_iterator"* %this, %"struct.std::_List_const_iterator"* %__x) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_const_iterator"*, align 4
  %__x.addr = alloca %"struct.std::_List_const_iterator"*, align 4
  store %"struct.std::_List_const_iterator"* %this, %"struct.std::_List_const_iterator"** %this.addr, align 4
  store %"struct.std::_List_const_iterator"* %__x, %"struct.std::_List_const_iterator"** %__x.addr, align 4
  %this1 = load %"struct.std::_List_const_iterator"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_const_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %1 = load %"struct.std::_List_const_iterator"** %__x.addr, align 4
  %_M_node2 = getelementptr inbounds %"struct.std::_List_const_iterator"* %1, i32 0, i32 0
  %2 = load %"struct.std::__detail::_List_node_base"** %_M_node2, align 4
  %cmp = icmp eq %"struct.std::__detail::_List_node_base"* %0, %2
  ret i1 %cmp
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5eraseESt14_List_iteratorIS7_ESB_(%"struct.std::_List_iterator"* noalias sret %agg.result, %"class.std::list.21"* %this, %"struct.std::_List_iterator"* byval align 4 %__first, %"struct.std::_List_iterator"* byval align 4 %__last) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %ref.tmp = alloca %"struct.std::_List_iterator", align 4
  %agg.tmp = alloca %"struct.std::_List_iterator", align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  br label %while.cond

while.cond:                                       ; preds = %while.body, %entry
  %call = call zeroext i1 @_ZNKSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEneERKS8_(%"struct.std::_List_iterator"* %__first, %"struct.std::_List_iterator"* %__last)
  br i1 %call, label %while.body, label %while.end

while.body:                                       ; preds = %while.cond
  %0 = bitcast %"struct.std::_List_iterator"* %agg.tmp to i8*
  %1 = bitcast %"struct.std::_List_iterator"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5eraseESt14_List_iteratorIS7_E(%"struct.std::_List_iterator"* sret %ref.tmp, %"class.std::list.21"* %this1, %"struct.std::_List_iterator"* byval align 4 %agg.tmp)
  %2 = bitcast %"struct.std::_List_iterator"* %__first to i8*
  %3 = bitcast %"struct.std::_List_iterator"* %ref.tmp to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  br label %while.cond

while.end:                                        ; preds = %while.cond
  %4 = bitcast %"struct.std::_List_iterator"* %agg.result to i8*
  %5 = bitcast %"struct.std::_List_iterator"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE6insertISt20_List_const_iteratorIS7_EEEvSt14_List_iteratorIS7_ET_SF_(%"class.std::list.21"* %this, %"struct.std::_List_iterator"* byval align 4 %__position, %"struct.std::_List_const_iterator"* byval align 4 %__first, %"struct.std::_List_const_iterator"* byval align 4 %__last) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__tmp = alloca %"class.std::list.21", align 4
  %agg.tmp = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp2 = alloca %"struct.std::_List_const_iterator", align 4
  %ref.tmp = alloca %"class.std::allocator.61", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp3 = alloca %"struct.std::_List_iterator", align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"struct.std::_List_const_iterator"* %agg.tmp to i8*
  %1 = bitcast %"struct.std::_List_const_iterator"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %2 = bitcast %"struct.std::_List_const_iterator"* %agg.tmp2 to i8*
  %3 = bitcast %"struct.std::_List_const_iterator"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %call = call %"class.std::allocator.23"* @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE21_M_get_Node_allocatorEv(%"class.std::_List_base.22"* %4)
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC1ISt10_List_nodeIS6_EEERKSaIT_E(%"class.std::allocator.61"* %ref.tmp, %"class.std::allocator.23"* %call) nounwind
  invoke void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC1ISt20_List_const_iteratorIS7_EEET_SD_RKS8_(%"class.std::list.21"* %__tmp, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp2, %"class.std::allocator.61"* %ref.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %ref.tmp) nounwind
  %5 = bitcast %"struct.std::_List_iterator"* %agg.tmp3 to i8*
  %6 = bitcast %"struct.std::_List_iterator"* %__position to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %6, i32 4, i32 4, i1 false)
  invoke void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE6spliceESt14_List_iteratorIS7_ERS9_(%"class.std::list.21"* %this1, %"struct.std::_List_iterator"* byval align 4 %agg.tmp3, %"class.std::list.21"* %__tmp)
          to label %invoke.cont5 unwind label %lpad4

invoke.cont5:                                     ; preds = %invoke.cont
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED1Ev(%"class.std::list.21"* %__tmp)
  ret void

lpad:                                             ; preds = %entry
  %7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %8 = extractvalue { i8*, i32 } %7, 0
  store i8* %8, i8** %exn.slot
  %9 = extractvalue { i8*, i32 } %7, 1
  store i32 %9, i32* %ehselector.slot
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %ref.tmp) nounwind
  br label %eh.resume

lpad4:                                            ; preds = %invoke.cont
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %11 = extractvalue { i8*, i32 } %10, 0
  store i8* %11, i8** %exn.slot
  %12 = extractvalue { i8*, i32 } %10, 1
  store i32 %12, i32* %ehselector.slot
  invoke void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED1Ev(%"class.std::list.21"* %__tmp)
          to label %invoke.cont6 unwind label %terminate.lpad

invoke.cont6:                                     ; preds = %lpad4
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont6, %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7

terminate.lpad:                                   ; preds = %lpad4
  %13 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC1ISt20_List_const_iteratorIS7_EEET_SD_RKS8_(%"class.std::list.21"* %this, %"struct.std::_List_const_iterator"* byval align 4 %__first, %"struct.std::_List_const_iterator"* byval align 4 %__last, %"class.std::allocator.61"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__a.addr = alloca %"class.std::allocator.61"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.std::allocator.61"* %__a, %"class.std::allocator.61"** %__a.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = load %"class.std::allocator.61"** %__a.addr
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2ISt20_List_const_iteratorIS7_EEET_SD_RKS8_(%"class.std::list.21"* %this1, %"struct.std::_List_const_iterator"* byval align 4 %__first, %"struct.std::_List_const_iterator"* byval align 4 %__last, %"class.std::allocator.61"* %0)
  ret void
}

define linkonce_odr %"class.std::allocator.23"* @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE21_M_get_Node_allocatorEv(%"class.std::_List_base.22"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl to %"class.std::allocator.23"*
  ret %"class.std::allocator.23"* %0
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE6spliceESt14_List_iteratorIS7_ERS9_(%"class.std::list.21"* %this, %"struct.std::_List_iterator"* byval align 4 %__position, %"class.std::list.21"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__x.addr = alloca %"class.std::list.21"*, align 4
  %agg.tmp = alloca %"struct.std::_List_iterator", align 4
  %agg.tmp2 = alloca %"struct.std::_List_iterator", align 4
  %agg.tmp3 = alloca %"struct.std::_List_iterator", align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.std::list.21"* %__x, %"class.std::list.21"** %__x.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = load %"class.std::list.21"** %__x.addr, align 4
  %call = call zeroext i1 @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5emptyEv(%"class.std::list.21"* %0)
  br i1 %call, label %if.end, label %if.then

if.then:                                          ; preds = %entry
  %1 = load %"class.std::list.21"** %__x.addr, align 4
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE25_M_check_equal_allocatorsERS9_(%"class.std::list.21"* %this1, %"class.std::list.21"* %1)
  %2 = bitcast %"struct.std::_List_iterator"* %agg.tmp to i8*
  %3 = bitcast %"struct.std::_List_iterator"* %__position to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = load %"class.std::list.21"** %__x.addr, align 4
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5beginEv(%"struct.std::_List_iterator"* sret %agg.tmp2, %"class.std::list.21"* %4)
  %5 = load %"class.std::list.21"** %__x.addr, align 4
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_iterator"* sret %agg.tmp3, %"class.std::list.21"* %5)
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE11_M_transferESt14_List_iteratorIS7_ESB_SB_(%"class.std::list.21"* %this1, %"struct.std::_List_iterator"* byval align 4 %agg.tmp, %"struct.std::_List_iterator"* byval align 4 %agg.tmp2, %"struct.std::_List_iterator"* byval align 4 %agg.tmp3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr zeroext i1 @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5emptyEv(%"class.std::list.21"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %0, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, i32 0, i32 0
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node, i32 0, i32 0
  %1 = load %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  %2 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base.22"* %2, i32 0, i32 0
  %_M_node3 = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl2, i32 0, i32 0
  %cmp = icmp eq %"struct.std::__detail::_List_node_base"* %1, %_M_node3
  ret i1 %cmp
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE25_M_check_equal_allocatorsERS9_(%"class.std::list.21"* %this, %"class.std::list.21"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__x.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.std::list.21"* %__x, %"class.std::list.21"** %__x.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %call = call %"class.std::allocator.23"* @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE21_M_get_Node_allocatorEv(%"class.std::_List_base.22"* %0)
  %1 = load %"class.std::list.21"** %__x.addr, align 4
  %2 = bitcast %"class.std::list.21"* %1 to %"class.std::_List_base.22"*
  %call2 = call %"class.std::allocator.23"* @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE21_M_get_Node_allocatorEv(%"class.std::_List_base.22"* %2)
  %call3 = call zeroext i1 @_ZNSt11__alloc_neqISaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEELb1EE8_S_do_itERKSA_SD_(%"class.std::allocator.23"* %call, %"class.std::allocator.23"* %call2)
  br i1 %call3, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt21__throw_runtime_errorPKc(i8* getelementptr inbounds ([32 x i8]* @.str30, i32 0, i32 0)) noreturn
  unreachable

if.end:                                           ; preds = %entry
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE11_M_transferESt14_List_iteratorIS7_ESB_SB_(%"class.std::list.21"* %this, %"struct.std::_List_iterator"* byval align 4 %__position, %"struct.std::_List_iterator"* byval align 4 %__first, %"struct.std::_List_iterator"* byval align 4 %__last) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %__position, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %_M_node2 = getelementptr inbounds %"struct.std::_List_iterator"* %__first, i32 0, i32 0
  %1 = load %"struct.std::__detail::_List_node_base"** %_M_node2, align 4
  %_M_node3 = getelementptr inbounds %"struct.std::_List_iterator"* %__last, i32 0, i32 0
  %2 = load %"struct.std::__detail::_List_node_base"** %_M_node3, align 4
  call void @_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_(%"struct.std::__detail::_List_node_base"* %0, %"struct.std::__detail::_List_node_base"* %1, %"struct.std::__detail::_List_node_base"* %2) nounwind
  ret void
}

declare void @_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_(%"struct.std::__detail::_List_node_base"*, %"struct.std::__detail::_List_node_base"*, %"struct.std::__detail::_List_node_base"*) nounwind

define linkonce_odr zeroext i1 @_ZNSt11__alloc_neqISaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEEELb1EE8_S_do_itERKSA_SD_(%"class.std::allocator.23"*, %"class.std::allocator.23"*) nounwind align 2 {
entry:
  %.addr = alloca %"class.std::allocator.23"*, align 4
  %.addr1 = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.23"* %0, %"class.std::allocator.23"** %.addr, align 4
  store %"class.std::allocator.23"* %1, %"class.std::allocator.23"** %.addr1, align 4
  ret i1 false
}

declare void @_ZSt21__throw_runtime_errorPKc(i8*) noreturn

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2ISt20_List_const_iteratorIS7_EEET_SD_RKS8_(%"class.std::list.21"* %this, %"struct.std::_List_const_iterator"* byval align 4 %__first, %"struct.std::_List_const_iterator"* byval align 4 %__last, %"class.std::allocator.61"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__a.addr = alloca %"class.std::allocator.61"*, align 4
  %agg.tmp = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp2 = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp3 = alloca %"struct.std::__false_type", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.std::allocator.61"* %__a, %"class.std::allocator.61"** %__a.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %1 = load %"class.std::allocator.61"** %__a.addr, align 4
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2ERKS8_(%"class.std::_List_base.22"* %0, %"class.std::allocator.61"* %1)
  %2 = bitcast %"struct.std::_List_const_iterator"* %agg.tmp to i8*
  %3 = bitcast %"struct.std::_List_const_iterator"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = bitcast %"struct.std::_List_const_iterator"* %agg.tmp2 to i8*
  %5 = bitcast %"struct.std::_List_const_iterator"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  invoke void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE22_M_initialize_dispatchISt20_List_const_iteratorIS7_EEEvT_SD_St12__false_type(%"class.std::list.21"* %this1, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp2)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  %9 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  invoke void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED2Ev(%"class.std::_List_base.22"* %9)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2ERKS8_(%"class.std::_List_base.22"* %this, %"class.std::allocator.61"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  %__a.addr = alloca %"class.std::allocator.61"*, align 4
  %ref.tmp = alloca %"class.std::allocator.23", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  store %"class.std::allocator.61"* %__a, %"class.std::allocator.61"** %__a.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %0 = load %"class.std::allocator.61"** %__a.addr, align 4
  call void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC1IS7_EERKSaIT_E(%"class.std::allocator.23"* %ref.tmp, %"class.std::allocator.61"* %0) nounwind
  invoke void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implC1ERKSaISt10_List_nodeIS7_EE(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, %"class.std::allocator.23"* %ref.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEED1Ev(%"class.std::allocator.23"* %ref.tmp) nounwind
  invoke void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE7_M_initEv(%"class.std::_List_base.22"* %this1)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %invoke.cont
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  call void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEED1Ev(%"class.std::allocator.23"* %ref.tmp) nounwind
  br label %eh.resume

lpad2:                                            ; preds = %invoke.cont
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %5 = extractvalue { i8*, i32 } %4, 0
  store i8* %5, i8** %exn.slot
  %6 = extractvalue { i8*, i32 } %4, 1
  store i32 %6, i32* %ehselector.slot
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implD1Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad2, %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE22_M_initialize_dispatchISt20_List_const_iteratorIS7_EEEvT_SD_St12__false_type(%"class.std::list.21"* %this, %"struct.std::_List_const_iterator"* byval align 4 %__first, %"struct.std::_List_const_iterator"* byval align 4 %__last) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %0 = alloca %"struct.std::__false_type", align 1
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %call = call zeroext i1 @_ZNKSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEneERKS8_(%"struct.std::_List_const_iterator"* %__first, %"struct.std::_List_const_iterator"* %__last)
  br i1 %call, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %call2 = call %"class.boost::detail::stored_edge_property"* @_ZNKSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEdeEv(%"struct.std::_List_const_iterator"* %__first)
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE9push_backERKS7_(%"class.std::list.21"* %this1, %"class.boost::detail::stored_edge_property"* %call2)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %call3 = call %"struct.std::_List_const_iterator"* @_ZNSt20_List_const_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEppEv(%"struct.std::_List_const_iterator"* %__first)
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implC1ERKSaISt10_List_nodeIS7_EE(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"class.std::allocator.23"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.23"*, align 4
  store %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  store %"class.std::allocator.23"* %__a, %"class.std::allocator.23"** %__a.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  %0 = load %"class.std::allocator.23"** %__a.addr
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implC2ERKSaISt10_List_nodeIS7_EE(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1, %"class.std::allocator.23"* %0)
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC1IS7_EERKSaIT_E(%"class.std::allocator.23"* %this, %"class.std::allocator.61"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.23"*, align 4
  %.addr = alloca %"class.std::allocator.61"*, align 4
  store %"class.std::allocator.23"* %this, %"class.std::allocator.23"** %this.addr, align 4
  store %"class.std::allocator.61"* %0, %"class.std::allocator.61"** %.addr, align 4
  %this1 = load %"class.std::allocator.23"** %this.addr
  %1 = load %"class.std::allocator.61"** %.addr
  call void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC2IS7_EERKSaIT_E(%"class.std::allocator.23"* %this1, %"class.std::allocator.61"* %1) nounwind
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEED1Ev(%"class.std::allocator.23"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.23"* %this, %"class.std::allocator.23"** %this.addr, align 4
  %this1 = load %"class.std::allocator.23"** %this.addr
  call void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEED2Ev(%"class.std::allocator.23"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE7_M_initEv(%"class.std::_List_base.22"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, i32 0, i32 0
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %_M_node3 = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl2, i32 0, i32 0
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node3, i32 0, i32 0
  store %"struct.std::__detail::_List_node_base"* %_M_node, %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  %_M_impl4 = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %_M_node5 = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl4, i32 0, i32 0
  %_M_impl6 = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  %_M_node7 = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl6, i32 0, i32 0
  %_M_prev = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node7, i32 0, i32 1
  store %"struct.std::__detail::_List_node_base"* %_M_node5, %"struct.std::__detail::_List_node_base"** %_M_prev, align 4
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC2IS7_EERKSaIT_E(%"class.std::allocator.23"* %this, %"class.std::allocator.61"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.23"*, align 4
  %.addr = alloca %"class.std::allocator.61"*, align 4
  store %"class.std::allocator.23"* %this, %"class.std::allocator.23"** %this.addr, align 4
  store %"class.std::allocator.61"* %0, %"class.std::allocator.61"** %.addr, align 4
  %this1 = load %"class.std::allocator.23"** %this.addr
  %1 = bitcast %"class.std::allocator.23"* %this1 to %"class.__gnu_cxx::new_allocator.24"*
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEEC2Ev(%"class.__gnu_cxx::new_allocator.24"* %1) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEEC2Ev(%"class.__gnu_cxx::new_allocator.24"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implC2ERKSaISt10_List_nodeIS7_EE(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"class.std::allocator.23"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.23"*, align 4
  store %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  store %"class.std::allocator.23"* %__a, %"class.std::allocator.23"** %__a.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  %0 = bitcast %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1 to %"class.std::allocator.23"*
  %1 = load %"class.std::allocator.23"** %__a.addr, align 4
  call void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC2ERKS9_(%"class.std::allocator.23"* %0, %"class.std::allocator.23"* %1) nounwind
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1, i32 0, i32 0
  %2 = bitcast %"struct.std::__detail::_List_node_base"* %_M_node to i8*
  call void @llvm.memset.p0i8.i32(i8* %2, i8 0, i32 8, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC2ERKS9_(%"class.std::allocator.23"* %this, %"class.std::allocator.23"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.23"*, align 4
  %__a.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.23"* %this, %"class.std::allocator.23"** %this.addr, align 4
  store %"class.std::allocator.23"* %__a, %"class.std::allocator.23"** %__a.addr, align 4
  %this1 = load %"class.std::allocator.23"** %this.addr
  %0 = bitcast %"class.std::allocator.23"* %this1 to %"class.__gnu_cxx::new_allocator.24"*
  %1 = load %"class.std::allocator.23"** %__a.addr, align 4
  %2 = bitcast %"class.std::allocator.23"* %1 to %"class.__gnu_cxx::new_allocator.24"*
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEEC2ERKSB_(%"class.__gnu_cxx::new_allocator.24"* %0, %"class.__gnu_cxx::new_allocator.24"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEEC2ERKSB_(%"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  %.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %0, %"class.__gnu_cxx::new_allocator.24"** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5eraseESt14_List_iteratorIS7_E(%"struct.std::_List_iterator"* noalias sret %agg.result, %"class.std::list.21"* %this, %"struct.std::_List_iterator"* byval align 4 %__position) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %agg.tmp = alloca %"struct.std::_List_iterator", align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %__position, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %0, i32 0, i32 0
  %1 = load %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  call void @_ZNSt14_List_iteratorIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEC1EPNSt8__detail15_List_node_baseE(%"struct.std::_List_iterator"* %agg.result, %"struct.std::__detail::_List_node_base"* %1)
  %2 = bitcast %"struct.std::_List_iterator"* %agg.tmp to i8*
  %3 = bitcast %"struct.std::_List_iterator"* %__position to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE8_M_eraseESt14_List_iteratorIS7_E(%"class.std::list.21"* %this1, %"struct.std::_List_iterator"* byval align 4 %agg.tmp)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE8_M_eraseESt14_List_iteratorIS7_E(%"class.std::list.21"* %this, %"struct.std::_List_iterator"* byval align 4 %__position) align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__n = alloca %"struct.std::_List_node"*, align 4
  %temp.lvalue = alloca %"class.std::allocator.61", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %_M_node = getelementptr inbounds %"struct.std::_List_iterator"* %__position, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_node, align 4
  call void @_ZNSt8__detail15_List_node_base9_M_unhookEv(%"struct.std::__detail::_List_node_base"* %0) nounwind
  %_M_node2 = getelementptr inbounds %"struct.std::_List_iterator"* %__position, i32 0, i32 0
  %1 = load %"struct.std::__detail::_List_node_base"** %_M_node2, align 4
  %2 = bitcast %"struct.std::__detail::_List_node_base"* %1 to %"struct.std::_List_node"*
  store %"struct.std::_List_node"* %2, %"struct.std::_List_node"** %__n, align 4
  %3 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  call void @_ZNKSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE19_M_get_Tp_allocatorEv(%"class.std::allocator.61"* sret %temp.lvalue, %"class.std::_List_base.22"* %3)
  %4 = bitcast %"class.std::allocator.61"* %temp.lvalue to %"class.__gnu_cxx::new_allocator.62"*
  %5 = load %"struct.std::_List_node"** %__n, align 4
  %_M_data = getelementptr inbounds %"struct.std::_List_node"* %5, i32 0, i32 1
  %call = invoke %"class.boost::detail::stored_edge_property"* @_ZSt11__addressofIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEPT_RS8_(%"class.boost::detail::stored_edge_property"* %_M_data)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_8propertyINS1_13edge_weight_tEiNS1_11no_propertyEEEEEE7destroyEPS8_(%"class.__gnu_cxx::new_allocator.62"* %4, %"class.boost::detail::stored_edge_property"* %call)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %temp.lvalue) nounwind
  %6 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %7 = load %"struct.std::_List_node"** %__n, align 4
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE11_M_put_nodeEPSt10_List_nodeIS7_E(%"class.std::_List_base.22"* %6, %"struct.std::_List_node"* %7)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %9 = extractvalue { i8*, i32 } %8, 0
  store i8* %9, i8** %exn.slot
  %10 = extractvalue { i8*, i32 } %8, 1
  store i32 %10, i32* %ehselector.slot
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %temp.lvalue) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4
}

declare void @_ZNSt8__detail15_List_node_base9_M_unhookEv(%"struct.std::__detail::_List_node_base"*) nounwind

define linkonce_odr %"class.boost::detail::stored_edge"* @_ZN5boost6detail11stored_edgeIjEaSERKS2_(%"class.boost::detail::stored_edge"* %this, %"class.boost::detail::stored_edge"* %x) nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge"*, align 4
  %x.addr = alloca %"class.boost::detail::stored_edge"*, align 4
  store %"class.boost::detail::stored_edge"* %this, %"class.boost::detail::stored_edge"** %this.addr, align 4
  store %"class.boost::detail::stored_edge"* %x, %"class.boost::detail::stored_edge"** %x.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge"** %this.addr
  %0 = load %"class.boost::detail::stored_edge"** %x.addr, align 4
  %m_target = getelementptr inbounds %"class.boost::detail::stored_edge"* %0, i32 0, i32 0
  %1 = load i32* %m_target, align 4
  %m_target2 = getelementptr inbounds %"class.boost::detail::stored_edge"* %this1, i32 0, i32 0
  store i32 %1, i32* %m_target2, align 4
  ret %"class.boost::detail::stored_edge"* %this1
}

define linkonce_odr %"class.std::auto_ptr"* @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEaSERS5_(%"class.std::auto_ptr"* %this, %"class.std::auto_ptr"* %__a) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__a.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"class.std::auto_ptr"* %__a, %"class.std::auto_ptr"** %__a.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %0 = load %"class.std::auto_ptr"** %__a.addr, align 4
  %call = call %"struct.boost::property"* @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEE7releaseEv(%"class.std::auto_ptr"* %0) nounwind
  call void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEE5resetEPS4_(%"class.std::auto_ptr"* %this1, %"struct.boost::property"* %call) nounwind
  ret %"class.std::auto_ptr"* %this1
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEE5resetEPS4_(%"class.std::auto_ptr"* %this, %"struct.boost::property"* %__p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__p.addr = alloca %"struct.boost::property"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"struct.boost::property"* %__p, %"struct.boost::property"** %__p.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %0 = load %"struct.boost::property"** %__p.addr, align 4
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::property"** %_M_ptr, align 4
  %cmp = icmp ne %"struct.boost::property"* %0, %1
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_ptr2 = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %2 = load %"struct.boost::property"** %_M_ptr2, align 4
  %isnull = icmp eq %"struct.boost::property"* %2, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %if.then
  %3 = bitcast %"struct.boost::property"* %2 to i8*
  call void @_ZdlPv(i8* %3) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %if.then
  %4 = load %"struct.boost::property"** %__p.addr, align 4
  %_M_ptr3 = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  store %"struct.boost::property"* %4, %"struct.boost::property"** %_M_ptr3, align 4
  br label %if.end

if.end:                                           ; preds = %delete.end, %entry
  ret void
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt23__copy_move_backward_a2ILb0EPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_ET1_T0_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESH_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %call1 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESH_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call2 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESH_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  %call3 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__copy_move_backward_aILb0EPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_ET1_T0_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call2)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call3
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__miter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEENSt11_Miter_baseIT_E13iterator_typeESH_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__it) nounwind inlinehint {
entry:
  %__it.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__it, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt10_Iter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexELb0EE7_S_baseESF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__copy_move_backward_aILb0EPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_ET1_T0_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__simple = alloca i8, align 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  store i8 0, i8* %__simple, align 1
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPN5boost6detail12adj_list_genINS3_14adjacency_listINS3_5listSENS3_4vecSENS3_9directedSENS3_11no_propertyENS3_8propertyINS3_13edge_weight_tEiSA_EESA_S7_EES8_S7_S9_SA_SD_SA_S7_E6config13stored_vertexESI_EET0_T_SK_SJ_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPN5boost6detail12adj_list_genINS3_14adjacency_listINS3_5listSENS3_4vecSENS3_9directedSENS3_11no_propertyENS3_8propertyINS3_13edge_weight_tEiSA_EESA_S7_EES8_S7_S9_SA_SD_SA_S7_E6config13stored_vertexESI_EET0_T_SK_SJ_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result) align 2 {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n = alloca i32, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 12
  store i32 %sub.ptr.div, i32* %__n, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = load i32* %__n, align 4
  %cmp = icmp sgt i32 %2, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3, i32 -1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %incdec.ptr1 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %4, i32 -1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexaSERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr1)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %5 = load i32* %__n, align 4
  %dec = add nsw i32 %5, -1
  store i32 %dec, i32* %__n, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %6 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %6
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_copy_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_SE_ET0_T_SH_SG_RSaIT1_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"class.std::allocator.0"*) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  store %"class.std::allocator.0"* %0, %"class.std::allocator.0"** %.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt18uninitialized_copyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_ET0_T_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt18uninitialized_copyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESF_ET0_T_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_5listSENS2_4vecSENS2_9directedSENS2_11no_propertyENS2_8propertyINS2_13edge_weight_tEiS9_EES9_S6_EES7_S6_S8_S9_SC_S9_S6_E6config13stored_vertexESH_EET0_T_SJ_SI_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_5listSENS2_4vecSENS2_9directedSENS2_11no_propertyENS2_8propertyINS2_13edge_weight_tEiS9_EES9_S6_EES7_S6_S8_S9_SC_S9_S6_E6config13stored_vertexESH_EET0_T_SJ_SI_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result) align 2 {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__cur = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %cmp = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, %2
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  %call = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt11__addressofIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEPT_RSF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.body
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  invoke void @_ZSt10_ConstructIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESE_EvPT_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %4)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %invoke.cont
  br label %for.inc

for.inc:                                          ; preds = %invoke.cont1
  %5 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %5, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %6 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  %incdec.ptr2 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %6, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  br label %for.cond

lpad:                                             ; preds = %invoke.cont, %for.body
  %7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %8 = extractvalue { i8*, i32 } %7, 0
  store i8* %8, i8** %exn.slot
  %9 = extractvalue { i8*, i32 } %7, 1
  store i32 %9, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %10 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %11 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %12 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEEvT_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %11, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %12)
          to label %invoke.cont4 unwind label %lpad3

invoke.cont4:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad3

for.end:                                          ; preds = %for.cond
  %13 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %13

lpad3:                                            ; preds = %invoke.cont4, %catch
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %15 = extractvalue { i8*, i32 } %14, 0
  store i8* %15, i8** %exn.slot
  %16 = extractvalue { i8*, i32 } %14, 1
  store i32 %16, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont5 unwind label %terminate.lpad

invoke.cont5:                                     ; preds = %lpad3
  br label %eh.resume

try.cont:                                         ; No predecessors!
  call void @llvm.trap()
  unreachable

eh.resume:                                        ; preds = %invoke.cont5
  %exn6 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn6, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7

terminate.lpad:                                   ; preds = %lpad3
  %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont4
  unreachable
}

declare void @llvm.trap() noreturn nounwind

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC2ERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %3 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config18rand_stored_vertexC2ERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config18rand_stored_vertexC2ERKSD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %m_out_edges2 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, i32 0, i32 0
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC1ERKS9_(%"class.std::list.21"* %m_out_edges, %"class.std::list.21"* %m_out_edges2)
  %m_property = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 1
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %m_property3 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %2, i32 0, i32 1
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC1ERKS9_(%"class.std::list.21"* %this, %"class.std::list.21"* %__x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__x.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.std::list.21"* %__x, %"class.std::list.21"** %__x.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = load %"class.std::list.21"** %__x.addr
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2ERKS9_(%"class.std::list.21"* %this1, %"class.std::list.21"* %0)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2ERKS9_(%"class.std::list.21"* %this, %"class.std::list.21"* %__x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  %__x.addr = alloca %"class.std::list.21"*, align 4
  %ref.tmp = alloca %"class.std::allocator.61", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp4 = alloca %"struct.std::_List_const_iterator", align 4
  %agg.tmp6 = alloca %"struct.std::__false_type", align 1
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  store %"class.std::list.21"* %__x, %"class.std::list.21"** %__x.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  %1 = load %"class.std::list.21"** %__x.addr, align 4
  %2 = bitcast %"class.std::list.21"* %1 to %"class.std::_List_base.22"*
  %call = call %"class.std::allocator.23"* @_ZNKSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE21_M_get_Node_allocatorEv(%"class.std::_List_base.22"* %2)
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEC1ISt10_List_nodeIS6_EEERKSaIT_E(%"class.std::allocator.61"* %ref.tmp, %"class.std::allocator.23"* %call) nounwind
  invoke void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2ERKS8_(%"class.std::_List_base.22"* %0, %"class.std::allocator.61"* %ref.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %ref.tmp) nounwind
  %3 = load %"class.std::list.21"** %__x.addr, align 4
  invoke void @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE5beginEv(%"struct.std::_List_const_iterator"* sret %agg.tmp, %"class.std::list.21"* %3)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %invoke.cont
  %4 = load %"class.std::list.21"** %__x.addr, align 4
  invoke void @_ZNKSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE3endEv(%"struct.std::_List_const_iterator"* sret %agg.tmp4, %"class.std::list.21"* %4)
          to label %invoke.cont5 unwind label %lpad2

invoke.cont5:                                     ; preds = %invoke.cont3
  invoke void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE22_M_initialize_dispatchISt20_List_const_iteratorIS7_EEEvT_SD_St12__false_type(%"class.std::list.21"* %this1, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp, %"struct.std::_List_const_iterator"* byval align 4 %agg.tmp4)
          to label %invoke.cont7 unwind label %lpad2

invoke.cont7:                                     ; preds = %invoke.cont5
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEED1Ev(%"class.std::allocator.61"* %ref.tmp) nounwind
  br label %eh.resume

lpad2:                                            ; preds = %invoke.cont5, %invoke.cont3, %invoke.cont
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %9 = extractvalue { i8*, i32 } %8, 0
  store i8* %9, i8** %exn.slot
  %10 = extractvalue { i8*, i32 } %8, 1
  store i32 %10, i32* %ehselector.slot
  %11 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  invoke void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EED2Ev(%"class.std::_List_base.22"* %11)
          to label %invoke.cont8 unwind label %terminate.lpad

invoke.cont8:                                     ; preds = %lpad2
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont8, %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9

terminate.lpad:                                   ; preds = %lpad2
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEEC2Ev(%"class.std::allocator.0"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  %0 = bitcast %"class.std::allocator.0"* %this1 to %"class.__gnu_cxx::new_allocator.1"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEEC2Ev(%"class.__gnu_cxx::new_allocator.1"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEEC2Ev(%"class.__gnu_cxx::new_allocator.1"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexC2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %0 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %this1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config18rand_stored_vertexC2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config18rand_stored_vertexC2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 0
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC1Ev(%"class.std::list.21"* %m_out_edges)
  %m_property = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 1
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC1Ev(%"class.std::list.21"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  call void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2Ev(%"class.std::list.21"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2Ev(%"class.std::list.21"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list.21"*, align 4
  store %"class.std::list.21"* %this, %"class.std::list.21"** %this.addr, align 4
  %this1 = load %"class.std::list.21"** %this.addr
  %0 = bitcast %"class.std::list.21"* %this1 to %"class.std::_List_base.22"*
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2Ev(%"class.std::_List_base.22"* %0)
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EEC2Ev(%"class.std::_List_base.22"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base.22"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base.22"* %this, %"class.std::_List_base.22"** %this.addr, align 4
  %this1 = load %"class.std::_List_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base.22"* %this1, i32 0, i32 0
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implC1Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl)
  invoke void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE7_M_initEv(%"class.std::_List_base.22"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implD1Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implC1Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  call void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implC2Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS7_EE10_List_implC2Ev(%"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  %0 = bitcast %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1 to %"class.std::allocator.23"*
  call void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC2Ev(%"class.std::allocator.23"* %0) nounwind
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::__detail::_List_node_base"* %_M_node to i8*
  call void @llvm.memset.p0i8.i32(i8* %1, i8 0, i32 8, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC2Ev(%"class.std::allocator.23"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.23"* %this, %"class.std::allocator.23"** %this.addr, align 4
  %this1 = load %"class.std::allocator.23"** %this.addr
  %0 = bitcast %"class.std::allocator.23"* %this1 to %"class.__gnu_cxx::new_allocator.24"*
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost6detail20stored_edge_propertyIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEEC2Ev(%"class.__gnu_cxx::new_allocator.24"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEC2EjRKSE_RKSF_(%"class.std::vector"* %this, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"class.std::allocator.0"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %1 = load i32* %__n.addr, align 4
  %2 = load %"class.std::allocator.0"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEC2EjRKSF_(%"struct.std::_Vector_base"* %0, i32 %1, %"class.std::allocator.0"* %2)
  %3 = load i32* %__n.addr, align 4
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE18_M_fill_initializeEjRKSE_(%"class.std::vector"* %this1, i32 %3, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  %8 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  invoke void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EED2Ev(%"struct.std::_Vector_base"* %8)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EEC2EjRKSF_(%"struct.std::_Vector_base"* %this, i32 %__n, %"class.std::allocator.0"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  %__n.addr = alloca i32, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %0 = load %"class.std::allocator.0"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implC1ERKSF_(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, %"class.std::allocator.0"* %0)
  %1 = load i32* %__n.addr, align 4
  %call = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE11_M_allocateEj(%"struct.std::_Vector_base"* %this1, i32 %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start4, align 4
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl5, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start7 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl6, i32 0, i32 0
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start7, align 4
  %4 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3, i32 %4
  %_M_impl8 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl8, i32 0, i32 2
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE18_M_fill_initializeEjRKSE_(%"class.std::vector"* %this, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %4 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call = call %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %4)
  call void @_ZSt24__uninitialized_fill_n_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexEjSE_SE_EvT_T0_RKT1_RSaIT2_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %1, i32 %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %3, %"class.std::allocator.0"* %call)
  %5 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %5, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %6 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  %7 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base"* %7, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl3, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* %6, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implC1ERKSF_(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"class.std::allocator.0"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr
  %0 = load %"class.std::allocator.0"** %__a.addr
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implC2ERKSF_(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1, %"class.std::allocator.0"* %0)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSENS0_11no_propertyENS0_8propertyINS0_13edge_weight_tEiS7_EES7_S4_EES5_S4_S6_S7_SA_S7_S4_E6config13stored_vertexESaISE_EE12_Vector_implC2ERKSF_(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"class.std::allocator.0"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1 to %"class.std::allocator.0"*
  %1 = load %"class.std::allocator.0"** %__a.addr, align 4
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEEC2ERKSE_(%"class.std::allocator.0"* %0, %"class.std::allocator.0"* %1) nounwind
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1, i32 0, i32 0
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* null, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* null, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1, i32 0, i32 2
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"* null, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::vecS, boost::listS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS6_EES6_S3_EES4_S3_S5_S6_S9_S6_S3_E6config13stored_vertexEEC2ERKSE_(%"class.std::allocator.0"* %this, %"class.std::allocator.0"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  %0 = bitcast %"class.std::allocator.0"* %this1 to %"class.__gnu_cxx::new_allocator.1"*
  %1 = load %"class.std::allocator.0"** %__a.addr, align 4
  %2 = bitcast %"class.std::allocator.0"* %1 to %"class.__gnu_cxx::new_allocator.1"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEEC2ERKSG_(%"class.__gnu_cxx::new_allocator.1"* %0, %"class.__gnu_cxx::new_allocator.1"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_5listSENS1_4vecSENS1_9directedSENS1_11no_propertyENS1_8propertyINS1_13edge_weight_tEiS8_EES8_S5_EES6_S5_S7_S8_SB_S8_S5_E6config13stored_vertexEEC2ERKSG_(%"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  %.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %0, %"class.__gnu_cxx::new_allocator.1"** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EEC2Ev(%"class.std::list"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list"*, align 4
  store %"class.std::list"* %this, %"class.std::list"** %this.addr, align 4
  %this1 = load %"class.std::list"** %this.addr
  %0 = bitcast %"class.std::list"* %this1 to %"class.std::_List_base"*
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EEC2Ev(%"class.std::_List_base"* %0)
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EEC2Ev(%"class.std::_List_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implC1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl)
  invoke void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE7_M_initEv(%"class.std::_List_base"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implD1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implC1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implC2Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE7_M_initEv(%"class.std::_List_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl, i32 0, i32 0
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node3 = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl2, i32 0, i32 0
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node3, i32 0, i32 0
  store %"struct.std::__detail::_List_node_base"* %_M_node, %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  %_M_impl4 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node5 = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl4, i32 0, i32 0
  %_M_impl6 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node7 = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %_M_impl6, i32 0, i32 0
  %_M_prev = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node7, i32 0, i32 1
  store %"struct.std::__detail::_List_node_base"* %_M_node5, %"struct.std::__detail::_List_node_base"** %_M_prev, align 4
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEESaIS6_EE10_List_implC2Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this, %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"** %this.addr
  %0 = bitcast %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1 to %"class.std::allocator"*
  call void @_ZNSaISt10_List_nodeIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC2Ev(%"class.std::allocator"* %0) nounwind
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> >, std::allocator<boost::list_edge<unsigned int, boost::property<boost::edge_weight_t, int, boost::no_property> > > >::_List_impl"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::__detail::_List_node_base"* %_M_node to i8*
  call void @llvm.memset.p0i8.i32(i8* %1, i8 0, i32 8, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost9list_edgeIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEEC2Ev(%"class.std::allocator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator"*, align 4
  store %"class.std::allocator"* %this, %"class.std::allocator"** %this.addr, align 4
  %this1 = load %"class.std::allocator"** %this.addr
  %0 = bitcast %"class.std::allocator"* %this1 to %"class.__gnu_cxx::new_allocator"*
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEEC2Ev(%"class.__gnu_cxx::new_allocator"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_8propertyINS2_13edge_weight_tEiNS2_11no_propertyEEEEEEEC2Ev(%"class.__gnu_cxx::new_allocator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator"*, align 4
  store %"class.__gnu_cxx::new_allocator"* %this, %"class.__gnu_cxx::new_allocator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt4pairIiiEC2ERKiS2_(%"struct.std::pair"* %this, i32* %__a, i32* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair"*, align 4
  %__a.addr = alloca i32*, align 4
  %__b.addr = alloca i32*, align 4
  store %"struct.std::pair"* %this, %"struct.std::pair"** %this.addr, align 4
  store i32* %__a, i32** %__a.addr, align 4
  store i32* %__b, i32** %__b.addr, align 4
  %this1 = load %"struct.std::pair"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair"* %this1, i32 0, i32 0
  %0 = load i32** %__a.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %first, align 4
  %second = getelementptr inbounds %"struct.std::pair"* %this1, i32 0, i32 1
  %2 = load i32** %__b.addr, align 4
  %3 = load i32* %2, align 4
  store i32 %3, i32* %second, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEC2ES6_(%"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, i32 %default_value) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::make_property_map_from_arg_pack_gen"*, align 4
  %default_value.addr = alloca i32, align 4
  store %"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr, align 4
  store i32 %default_value, i32* %default_value.addr, align 4
  %this1 = load %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr
  %default_value2 = getelementptr inbounds %"class.boost::detail::make_property_map_from_arg_pack_gen"* %this1, i32 0, i32 0
  %0 = load i32* %default_value.addr, align 4
  store i32 %0, i32* %default_value2, align 4
  ret void
}

define linkonce_odr void @_ZN5boost14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS4_EES4_S1_ED2Ev(%"class.boost::adjacency_list"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::adjacency_list"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::adjacency_list"* %this, %"class.boost::adjacency_list"** %this.addr, align 4
  %this1 = load %"class.boost::adjacency_list"** %this.addr
  %m_property = getelementptr inbounds %"class.boost::adjacency_list"* %this1, i32 0, i32 1
  invoke void @_ZN5boost10scoped_ptrINS_11no_propertyEED1Ev(%"class.boost::scoped_ptr"* %m_property)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast %"class.boost::adjacency_list"* %this1 to %"class.boost::vec_adj_list_impl"*
  call void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEED2Ev(%"class.boost::vec_adj_list_impl"* %0)
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  %4 = bitcast %"class.boost::adjacency_list"* %this1 to %"class.boost::vec_adj_list_impl"*
  invoke void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_5listSENS_4vecSENS_9directedSENS_11no_propertyENS_8propertyINS_13edge_weight_tEiS5_EES5_S2_EENS_6detail12adj_list_genIS9_S3_S2_S4_S5_S8_S5_S2_E6configENS_21directed_graph_helperISD_EEED2Ev(%"class.boost::vec_adj_list_impl"* %4)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost10scoped_ptrINS_11no_propertyEED1Ev(%"class.boost::scoped_ptr"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_ptr"*, align 4
  store %"class.boost::scoped_ptr"* %this, %"class.boost::scoped_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::scoped_ptr"** %this.addr
  call void @_ZN5boost10scoped_ptrINS_11no_propertyEED2Ev(%"class.boost::scoped_ptr"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost10scoped_ptrINS_11no_propertyEED2Ev(%"class.boost::scoped_ptr"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_ptr"*, align 4
  store %"class.boost::scoped_ptr"* %this, %"class.boost::scoped_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::scoped_ptr"** %this.addr
  %px = getelementptr inbounds %"class.boost::scoped_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::no_property"** %px, align 4
  call void @_ZN5boost14checked_deleteINS_11no_propertyEEEvPT_(%"struct.boost::no_property"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost14checked_deleteINS_11no_propertyEEEvPT_(%"struct.boost::no_property"* %x) nounwind inlinehint {
entry:
  %x.addr = alloca %"struct.boost::no_property"*, align 4
  store %"struct.boost::no_property"* %x, %"struct.boost::no_property"** %x.addr, align 4
  %0 = load %"struct.boost::no_property"** %x.addr, align 4
  %isnull = icmp eq %"struct.boost::no_property"* %0, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  %1 = bitcast %"struct.boost::no_property"* %0 to i8*
  call void @_ZdlPv(i8* %1) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

define linkonce_odr void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED2Ev(%"class.boost::detail::adj_list_edge_iterator"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::adj_list_edge_iterator"*, align 4
  store %"class.boost::detail::adj_list_edge_iterator"* %this, %"class.boost::detail::adj_list_edge_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::detail::adj_list_edge_iterator"** %this.addr
  %edges = getelementptr inbounds %"class.boost::detail::adj_list_edge_iterator"* %this1, i32 0, i32 3
  call void @_ZN5boost8optionalISt4pairINS_6detail13out_edge_iterISt14_List_iteratorINS2_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESF_EED1Ev(%"class.boost::optional"* %edges)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail22adj_list_edge_iteratorINS0_12range_detail16integer_iteratorIjEENS1_13out_edge_iterISt14_List_iteratorINS1_20stored_edge_propertyIjNS0_8propertyINS0_13edge_weight_tEiNS0_11no_propertyEEEEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEENS0_14adjacency_listINS0_5listSENS0_4vecSENS0_9directedSESB_SC_SB_SK_EEEESO_ED2Ev(%"struct.std::pair.20"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.20"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.20"* %this, %"struct.std::pair.20"** %this.addr, align 4
  %this1 = load %"struct.std::pair.20"** %this.addr
  %second = getelementptr inbounds %"struct.std::pair.20"* %this1, i32 0, i32 1
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %second)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %first = getelementptr inbounds %"struct.std::pair.20"* %this1, i32 0, i32 0
  call void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %first)
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  %first2 = getelementptr inbounds %"struct.std::pair.20"* %this1, i32 0, i32 0
  invoke void @_ZN5boost6detail22adj_list_edge_iteratorINS_12range_detail16integer_iteratorIjEENS0_13out_edge_iterISt14_List_iteratorINS0_20stored_edge_propertyIjNS_8propertyINS_13edge_weight_tEiNS_11no_propertyEEEEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEENS_14adjacency_listINS_5listSENS_4vecSENS_9directedSESA_SB_SA_SJ_EEED1Ev(%"class.boost::detail::adj_list_edge_iterator"* %first2)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define internal void @_GLOBAL__I_a() section ".text.startup" {
entry:
  call void @__cxx_global_var_init()
  call void @__cxx_global_var_init1()
  ret void
}

!0 = metadata !{i32 18685031, i32 18685038}       
!1 = metadata !{i32 18685343, i32 18685350}       
